ADL Open Source LRS vs xh
ADL Open Source LRS
github.comxh
github.comSide by side
| Figure | ADL Open Source LRS | xh |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | Yes |
| Web | Yes | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | — | Yes |
| Android | — | Yes |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Learning Record Store Software | 8.1 (#6) | 8.2 (#5) |
| License | The repository distributes the software under the Apache License, Version 2.0. | The project is distributed under the MIT License. |
| Purpose | The LRS stores learning data collected with the Experience API (xAPI). | xh is a friendly, fast tool for sending HTTP requests, with a focus on improved performance. |
Plans
In their own words
ADL Open Source LRS
ADL Open Source LRS stores learning data collected through the Experience API, or xAPI. The repository says this version conforms to IEEE 9274.1.1, also known as xAPI 2.0, and describes it as stable but intended for proof-of-concept use with a small number of users. It is free and distributed under the Apache License, Version 2.0.
Docker and Docker Compose are the recommended installation route. The deployment includes a Django web service using uWSGI, an nginx HTTP/HTTPS proxy, PostgreSQL, RabbitMQ, and Redis. OAuth is off by default; the project describes enabling it with the OAUTH_ENABLED setting and registering clients with the LRS. Optional webhooks can filter incoming statements and send matches to a client endpoint, and they are disabled by default. A webhook can include a secret used to send an HMAC hex digest in the X-LRS-Signature header. Celery handles activity metadata retrieval, statement voiding, and LRS hooks asynchronously. Database settings can be changed in settings.ini. The Docker guide describes an included Certbot container for obtaining a certificate for a public domain and restarting nginx to use it.
xh
xh is a free command-line tool for sending HTTP requests, with a focus on improved performance. It uses HTTPie's request-item syntax for setting headers, request bodies, and query strings. It supports JSON and form data, multipart requests, raw data, and request bodies read from standard input or a file. Responses can be pretty-printed, limited to headers or body output, and saved or downloaded to a file. Authentication options include basic, bearer, and digest. The README lists HTTP/2 support, while the current Cargo manifest has an optional HTTP/3 feature. The --curl flag translates a request into a curl command. Security options include TLS version selection, certificate verification settings, and client-side certificates. Prebuilt binaries are provided for Linux, macOS, and Windows, with package-manager installation instructions for those systems and Android. xh is distributed under the MIT License and has a free plan priced at free. It can use HTTPie compatibility mode when invoked as http or https, or when XH_HTTPIE_COMPAT_MODE is set. The README notes that some HTTPie features are not implemented, there is no plugin system, and its documentation is worse than HTTPie's.