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.
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 | |
|---|---|---|---|
| arrakis_server-0.17.2.tar.gz | 164.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arrakis_server-0.17.2-py3-none-any.whl | Python 3 | none | any | Details |
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
|