Ceres
Ceres is a Python framework for building data collection, monitoring, and device control systems. It takes ideas from service management tools like Docker and SystemD, scales them down, and applies them to Python objects called components.
Components are async Python classes that run concurrently, communicate through events, and persist their state in a database. They can connect to remote instruments over TCP, parse incoming data into structured records, emit alerts, and be managed through a CLI or web console.
Where Ceres Is Used
Ceres was built at the University of Washington Applied Physics Laboratory (APL) to power instrument drivers for the Ocean Observatories Initiative (OOI) Regional Cabled Array (RCA). Ceres runs on Linux, macOS, and Windows. In its current production deployment, it runs on physical Linux servers connected to oceanographic instruments (acoustic current profilers, pressure gauges, pH sensors, etc.), collecting and processing real-time data streams over TCP.
That said, Ceres is a general-purpose framework. It can manage any collection of async Python components that need lifecycle control, event handling, scheduling, and persistence.
Quick Example
from ceres import Component, routine, sleep
class Counter(Component):
initial: int
delta: int = 1
@routine
async def count(self) -> None:
count = self.initial
while True:
self.system.log.info(count)
await sleep(1)
count += self.delta
# ceres.yaml
database:
type: sqlite
path: ./database.sqlite
components:
- name: counter-a
class: counter.Counter
arguments:
initial: 5
- name: counter-b
class: counter.Counter
arguments:
initial: 100
delta: -5
ceres run all # Run both components in the foreground.
ceres service start # Or run as a background service.
ceres status # Check engine and component states.
ceres start all # Start all components.
ceres enable all # Auto-start components on engine startup.
ceres service stop # Stop the background service.
Documentation
The documentation is published at ooi-rca-apl.github.io/ceres.
Start here:
- Installing: Install Ceres and set up a project.
- Getting Started: Build your first Ceres project from scratch.
- Components: The core abstraction, routines, events, records.
- Connections: Connect to remote instruments and parse data.
- Writing a Driver: Build an instrument driver end to end.
- Deployment: Run Ceres as a production service.
Reference, generated from the code and checked in CI:
- Configuration: Every
ceres.yamlkey. - CLI: Every command and option.
- HTTP API: Every route the engine serves.
- Python API: Every name
ceresexports.
Contributing:
- Development: Set up a dev environment and contribute to Ceres.
Metadata
Release files for ceres-engine 0.47.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ceres_engine-0.47.1.tar.gz | 2.1 MB | Details |
Built distributions (wheels)
Total release size: 299.5 MB
Release files / ceres_engine-0.47.1.tar.gz
| Download URL | ceres_engine-0.47.1.tar.gz |
|---|---|
| Size | 2.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e642247fd0e42e2c6fcfd265078eb38828342653547390152456a28509dd658
|
|
BLAKE2b-256 checksum How to use checksums |
025517dffc999cef6ea3b42a5a713f9dff5b8a83959fbf6ce860b33956114ac0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / ceres_engine-0.47.1-cp314-cp314t-win_amd64.whl
| Download URL | ceres_engine-0.47.1-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 28.7 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b69d7436ae23186e398672fd6343c29c957f725e5aa50099d5fb8b864a8aca07
|
|
BLAKE2b-256 checksum How to use checksums |
d3fd1cbe8e757da811f663476a417f961a67a6de10953c2a64dd7a1962fc44be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / ceres_engine-0.47.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ceres_engine-0.47.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 31.3 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
105458c6d3de82c8883e0bed3a38114f669da41a637c18abd2478e7b48e742f5
|
|
BLAKE2b-256 checksum How to use checksums |
66a6f7bd45fd28f36c04c825a3c57e9a6f6eb2618988dd2b3040e5fb1a64b208
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / ceres_engine-0.47.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | ceres_engine-0.47.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 31.2 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
e224a718a33c5744079f52d896960cfff4c0bcb872f141e8db9512da7ccebde3
|
|
BLAKE2b-256 checksum How to use checksums |
15eb92afbe917c64a733d2ef39b0b25bffa1c3230b862e34a164c693fe23f25a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / ceres_engine-0.47.1-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | ceres_engine-0.47.1-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 28.2 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2c32e56f3339fad9c31186ce88452b51c4ee36d6bb434aee4b7dda5f67177ba6
|
|
BLAKE2b-256 checksum How to use checksums |
ec707f09958c009f63eda8418efbbb4250378c8c56cb8402997d5b6c3b15eda4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / ceres_engine-0.47.1-cp314-cp314t-macosx_10_12_x86_64.whl
| Download URL | ceres_engine-0.47.1-cp314-cp314t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 29.4 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
e7536c73bf317aff86204d5f6f8353552eb93e25f8a8d5df06d670a4bb830555
|
|
BLAKE2b-256 checksum How to use checksums |
df84aa6a7fa4ff7d23eb9a939f5eb3dd1423fc8168b527073089804545a6faf9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / ceres_engine-0.47.1-cp314-cp314-win_amd64.whl
| Download URL | ceres_engine-0.47.1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 28.7 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
217b3307e1428119bb755d768c169bc64fc65b205721ea44ea8504c2230f020e
|
|
BLAKE2b-256 checksum How to use checksums |
c8031a5a6f7090032da3eaf08181a14a01c783dd1747d5ff45c29e4cba0f963e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / ceres_engine-0.47.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ceres_engine-0.47.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 31.2 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
68ecb4282073746b7b1d25453be93f2c547adc6427735e79d8d705ace0cdaa24
|
|
BLAKE2b-256 checksum How to use checksums |
e270d237954d6fb8b022338e8ee642da05494e6a06f62f30a0f04f2c34089cd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / ceres_engine-0.47.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | ceres_engine-0.47.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 31.2 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
ddd5916c59fee802b452f2db489b7d150e24790d881fd555bf80d90650b46484
|
|
BLAKE2b-256 checksum How to use checksums |
dc4db10f96ea368be17d5d365f30922b0c222c066eaf64b256ada16047a1680d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / ceres_engine-0.47.1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | ceres_engine-0.47.1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 28.1 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
804387a9b944322951cdb8b060c479f61f7b8b3efc709dda7128043eb022a5ce
|
|
BLAKE2b-256 checksum How to use checksums |
f0e2f2de92fa7951c5b29516890ba8d7ad129cdf697e0b78fff8710462c62a39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / ceres_engine-0.47.1-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | ceres_engine-0.47.1-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 29.4 MB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
23050d89888054325ccdb7771df2e1d4b78f02dd871f3cbe3123482592039641
|
|
BLAKE2b-256 checksum How to use checksums |
a454bf24fd0ab3bfc7ac42aa18424ffbe6fb73849c06e1f2cf14458abc3461ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency log