finds.dev← search

// the find

adlnet/ADL_LRS

★ 332 · Python · Apache-2.0 · updated Nov 2025

ADL's Open Source Learning Record Store (LRS) is used to store learning data collected with the Experience API.

ADL_LRS is the reference implementation of an xAPI 2.0 (IEEE 9274.1.1) Learning Record Store — the server-side component that receives, stores, and serves learning experience statements from LMS platforms and training tools. It's Django + Celery + PostgreSQL, Dockerized, and built by the government agency that authored the xAPI spec. If you're building e-learning tooling and need an LRS you can actually read and modify, this is the canonical starting point.

The xAPI 2.0 update is recent (late 2025) and meaningful — most LRS implementations are stuck on 1.0.x, so having a reference implementation that tracks the current IEEE standard is genuinely useful. The Docker Compose setup covers the full stack (nginx, uWSGI, RabbitMQ via amqp, certbot) which means you can get a production-ish environment running without guessing at the topology. The test suite is extensive — dedicated test files per xAPI resource type (Statement, Activity, Agent, OAuth) and a separate 'tests_old' directory that suggests they've kept historical regression coverage when refactoring. The OAuth 1.0a implementation is bundled directly in the repo rather than depending on an unmaintained PyPI package, which matters for enterprise LMS integrations that still require it.

The README explicitly says 'only intended to support a small amount of users as a proof of concept' — this isn't false modesty, the architecture (single Django app, Celery for async) will hit walls fast at any real scale. The test coverage includes a 'tests_old' directory alongside a thin 'tests' directory, which is a signal that the test suite was partially rewritten but not finished — you don't know what's actually being run in CI. The OAuth implementation is vendored in-tree and implements OAuth 1.0a, which is ancient; there's no OAuth 2.0 or OIDC support, which will block integration with any modern identity provider. The 332 stars and low recent activity suggest this is more reference material than actively maintained production software — adopting it means owning it.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →