Ralph
openfun.github.io
What it is
Ralph is an open-source learning analytics toolbox delivered as an LRS HTTP API server, command-line interface, and library. It runs through an API, on Linux, or as a self-hosted deployment. Ralph follows xAPI specification 1.0.3, but xAPI 2.0 is not supported. Its LRS stores data in Elasticsearch, MongoDB, or ClickHouse. The library documents connections to OVH Log Data Platform, OpenStack Swift, Amazon S3, filesystems, other LRS systems, and WebSockets. The API server supports HTTP Basic authentication and OpenID Connect over OAuth 2.0, either separately or together. Statement access can be restricted by authority, and user scopes can limit endpoints or functions; both controls are off by default. Received xAPI statements can be forwarded to other LRS servers with configurable retries and timeouts. Sentry monitors the LRS server and CLI. The CLI converts selected OpenEdX events to xAPI statements. Ralph is distributed as a Python package and Docker image under the MIT License.
Spec sheet
- Purpose
- Ralph is a learning analytics toolbox available as an LRS HTTP API server, a command-line interface, and a library.Read 4 Oct 2026 · openfun.github.io
- Access controls
- Ralph can restrict statement access by authority and limit endpoints or functionality with user scopes; both controls are disabled by default.Read 4 Oct 2026 · openfun.github.io
- Authentication
- The API server supports HTTP Basic authentication and OpenID Connect on top of OAuth 2.0, and either or both can be enabled.Read 4 Oct 2026 · openfun.github.io
- Data backends
- Ralph LRS supports Elasticsearch, MongoDB, and ClickHouse databases.Read 4 Oct 2026 · openfun.github.io
- Data conversion
- The CLI can convert OpenEdX events to xAPI statements, but conversion is supported only for a set of OpenEdX events.Read 4 Oct 2026 · openfun.github.io
- Distribution and license
- Ralph is distributed as a Python package and Docker image and is released under the MIT License.Read 4 Oct 2026 · openfun.github.io
- Intended audience
- The project describes itself as community-driven and invites people to contribute questions, design feedback, issues, and code changes.Read 4 Oct 2026 · github.com
- Known API gaps
- The API documentation marks statement attachments, several filters, and some response formats as not implemented.Read 4 Oct 2026 · openfun.github.io
- Monitoring
- Ralph provides Sentry integration to monitor its LRS server and CLI.Read 4 Oct 2026 · openfun.github.io
- Other integrations
- The library documents backends for OVH Log Data Platform, OpenStack Swift, Amazon S3, filesystems, other LRS systems, and WebSockets.Read 4 Oct 2026 · openfun.github.io
- Statement forwarding
- The LRS can forward received xAPI statements to other LRS servers, with configurable retries and timeouts.Read 4 Oct 2026 · openfun.github.io
- xAPI support
- Ralph follows xAPI specification version 1.0.3 and does not currently support xAPI 2.0.Read 4 Oct 2026 · openfun.github.io
Plans and prices
Strong points and limits
Strong points
- Open-source MIT License distribution
- Supports Elasticsearch, MongoDB, and ClickHouse
- HTTP Basic and OpenID Connect authentication
- Configurable statement forwarding retries and timeouts
- Available as Python package and Docker image
Limits
- Does not support xAPI 2.0
- Access controls disabled by default
- Some API filters and responses unimplemented
- OpenEdX conversion covers only selected events
Who it suits
Ralph suits teams building or hosting learning-record infrastructure that need xAPI 1.0.3, configurable storage, forwarding, and API access. It also fits contributors interested in a community-driven project.
Verdict
Ralph provides a self-hosted LRS, CLI, and library with several storage and integration choices. Check its xAPI version and documented API gaps against your requirements before adopting it.
Where Specifiction places it
- Learning Record Store Software#14 of 237.5