arrakis-server
Arrakis server
Server implementation of the Arrakis low-latency timeseries data distribution platform. Serve historical and live detector data to clients over Apache Arrow Flight, either from a backend you provide or by acting as an information server that routes requests to other Arrakis endpoints.
Resources
Installation
With pip:
pip install arrakis-server
With Docker:
docker run --net=host -it containers.ligo.org/ngdd/arrakis-server:latest
Where to Start
- Tutorial — New to arrakis-server? Run a mock server and connect a client step by step.
- User Guide — Running the server, configuring backends, scope maps, multi-backend deployments, and production tips.
- Background — How the server works: Flight dispatch, the backend trait, retention-based routing, and the metadata model.
- API Reference — Auto-generated documentation from source code.
Features
- Pluggable backends via Python entry points
- Built-in mock backend for local testing and CI
- Information-server mode that routes requests across multiple endpoints
- Retention-aware request routing, splitting time ranges across live and historical backends
- Time-valued channel metadata for evolving detector configurations
- Publish and partition endpoints for Kafka-backed publishing backends
Quickstart
Run a mock server
The mock backend generates synthetic timeseries for a predefined set of H1 and L1 channels:
arrakis-server mock
Then connect with the Arrakis client CLI:
arrakis find "H1:.*"
Serve custom mock channels
Pass one or more TOML files defining your own channels:
arrakis-server mock my_channels.toml
A minimal channel file:
["common"]
publisher = "MY_PUBLISHER"
sample_rate = 256
data_type = "float32"
stride = 62_500_000
max_latency = 1_000_000_000
["MY:CHANNEL-NAME"]
func = "3*t + cos(t)"
func accepts any SymPy expression in t (GPS
seconds) to generate deterministic waveforms.
Run as an information server
An information server holds no data of its own; it routes client requests to other Arrakis endpoints based on a scope map:
arrakis-server --scope-map scope.yaml
The scope map lists each downstream endpoint along with the scopes and retention windows it serves. See the Scope Maps guide for the file format, and Multi-Backend Deployments for composing live and historical backends.
Write a backend
Backends plug in via the arrakis-server-backend entry-point group. A
minimal backend implements the ServerBackend protocol and registers in
its package's pyproject.toml:
[project.entry-points.arrakis-server-backend]
mybackend = "my_package.backend:MyBackend"
See Writing a Backend for the full interface and a complete example.
Metadata
Release files for arrakis-server 0.17.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| arrakis_server-0.17.2.tar.gz | 164.3 kB | Without provenance | Details for arrakis_server-0.17.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| arrakis_server-0.17.2-py3-none-any.whl | Python 3 | none | any | Details for arrakis_server-0.17.2-py3-none-any.whl |
Total release size: 300.7 kB
Release files / arrakis_server-0.17.2.tar.gz
| Download URL | arrakis_server-0.17.2.tar.gz |
|---|---|
| Size | 164.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ce257e3706488d840b5ea39deb762cd43bd3976f8549e519da65a7665f045bd
|
|
BLAKE2b-256 checksum How to use checksums |
2a452f18ac49cb86db4de851d376404a88c69d83f26c40dd1304d9693c524c44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1
|
Release files / arrakis_server-0.17.2-py3-none-any.whl
| Download URL | arrakis_server-0.17.2-py3-none-any.whl |
|---|---|
| Size | 136.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d3b180429a19fc012799badad3a8f8d85f662cb95ae5ea0c956335ea5b432ae9
|
|
BLAKE2b-256 checksum How to use checksums |
08df97b5a328e831f47dd7b694503e656446425f073b68dcf4d36b785300494a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1
|
Security for arrakis-server 0.17.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.