Warning
xAPI Profile Server Sunsetting (Updated Nov 18, 2025)
ADL has officially sunset their public xAPI Profile Server, which our active_lrs:statement generator relies on to fetch profile documents.
As a result, the statement generator will no longer function correctly when attempting to retrieve xAPI Profiles via the ADL service.
We are currently evaluating alternative options for accessing publicly available xAPI Profiles. If you know of any public or community-maintained xAPI Profile servers, or operate one yourself, we would love to hear from you—please open an issue or start a discussion in this repository.
Thank you for your patience as we work on restoring this functionality.
ActiveLRS is a lightweight Rails gem for working with xAPI (Experience API) data stored in a Learning Record Store (LRS).
It can generate plain Rails model classes (independent of ActiveRecord) and matching RSpec test files directly from an xAPI profile. An xAPI profile defines the vocabulary and structure for specific learning or activity events.
With ActiveLRS, you can:
- Generate Rails model classes from an xAPI profile.
- Automatically create test files for those classes.
- Fetch and process xAPI statements that match the events defined in your profile.
This makes it easier to prototype, test, and integrate xAPI-based learning data into your Ruby on Rails applications.
-
Add
active_lrsto your Rails application'sGemfilegem "active_lrs", git: "https://github.com/RaceRocks/activelrs"
This will install the most recent version of the gem to your rails app.
For a specific branch of the gem use
gem "active_lrs", git: "https://github.com/RaceRocks/activelrs" branch: <the branch name>
-
Save your
Gemfileand run:bundle install
or
bundle update
-
To install active_lrs, run the rails generator from your rails app directory:
rails generate active_lrs:install
-
Open
config/remote_lrs.ymland enter the connection details for your Learning Record Store (LRS).An LRS is a system that stores learning activity data (xAPI statements). If you don’t have an LRS yet, you can use the ADL xAPI Sandbox, which is a free public LRS for testing:
- Endpoint:
https://lrs.adlnet.gov/xapi/ - Username / Password: Sign up for a free account on the ADL website.
This allows you to start experimenting with ActiveLRS immediately without setting up your own LRS.
- Endpoint:
You can configure ActiveLRS in a Rails initializer to customize settings for your app:
# config/initializers/active_lrs.rb
ActiveLrs.configure do |config|
# Set the default locale for xAPI statements
config.default_locale = "fr-FR"
# Set the URL of your xAPI Profile server
config.xapi_profile_server_url = "https://my-profiles.example.com/"
endDefaults are used if not overridden:
ActiveLrs.configuration.default_locale # => "en-US"
ActiveLrs.configuration.xapi_profile_server_url # => "https://profiles.adlnet.gov/"rails generate active_lrs:statement <xAPI_Profile_IRI>This generator will fetch an xAPI profile from the xAPI profile server API, and create a model within your application (/app/models/<profile_name>_statement.rb). Generated models contain helpers to make querying statements easier.
Tip
You can find xAPI profiles and their IRIs here.
For a full list of available functionality, usage details, and examples, please check out the documentation.
This is the best place to explore all classes, modules, and methods provided by the library.
git clone https://github.com/RaceRocks/activelrsNavigate to gem directory
cd active_lrsInstall dependencies
bundle installBuild gem
gem build active_lrs.gemspec# Run entire RSpec test suite:
bundle exec rspec
# Run specific RSpec test files:
bundle exec rspec spec/path/to/file.rb# To check entire codebase for violations:
bundle exec rubocop
# To check specific files:
bundle exec rubocop path/to/file.rb
# Use the -A flag to auto-correct violations:
bundle exec rubocop -AThis project is actively maintained by the Racerocks Core Engineering Team, a specialized group dedicated to building robust, next-generation training software.
These are the trusted architects and developers who collaboratively drive the vision, manage the repository, and ensure the quality and stability of activelrs. They represent our unified expertise in modern learning data systems.
| Name | Role / Focus Area | GitHub Profile | Company Title |
|---|---|---|---|
| Amie Walton | Architect & Standards Lead (TLA/IEEE) | @AmieAtRR | VP of Technology |
| Ira Susanto | Core Maintainer / Contributor | @ira-susanto | Full Stack Developer |
| Sam Foran | Core Maintainer / Contributor | @s-foran | Full Stack Developer |
We deeply appreciate contributions from the wider open-source community, which help this project grow stronger and more versatile.
- @amielouwho |
|
Outside contributions — code, documentation, bug fixes, ideas — are always welcome. See CONTRIBUTING.md for how to get involved.
This project includes code derived from Xapi, licensed under MIT. We have modified it for our use case.
The MIT License (MIT).
© 2025 RaceRocks 3D. See LICENSE for details.