Skip to main content
# Odium: Remote Execution / Distributed Application Framework

## Requirements:

* Python 3 (>= 3.5) and git are installed.
* Remote execution: Arbitrary execution of code on remote systems under the connected user account.
* Versioned state: Each version of the configuration state has a unique id (hash of the state declaration), so that remotely executed commands can ensure the correct state for that command, thus ensuring that the calculation is done with the expected code / library / application / version.
* Any instance is both a hub and a node. It is a node to its source hub, it is a hub to any nodes that have connected to it.
* All communication encrypted between hub and node. Each publishes its public key for this purpose.

## Design:

* JSON for all messages.
* ZeroMQ for all network messaging.
* TCP port: default 18202, but configurable.
(2018-02-02 = date of "Past Life" Agents of S.H.I.E.L.D. episode, first reference to odium)
* Node and hub communicate using PUB/SUB (broadcast/query => nodes), REQ/REP (query => hub)
Also PUSH/PULL (job queue => nodes), and PULL/PUSH (result collection => hub).
* hub PUB / node SUB @ 18202
* node REQ / hub REP @ 18203
* hub PUSH / node PULL @ 18220
* node PUSH / hub PULL @ 18221
* Instance uses relational database to store configuration state, job queue, log, ...
(sqlite in the simple case)
* All communication includes the current configuration state id for the sending instance.
* Configuration state id = Application's current git commit hash.
* Configuration state includes: pip & system packages installed, state / environment data
* Commands (broadcast and queued) are executed in the application environment using multiprocess & subprocess. Results, logs, and errors are collected and returned via REQ => hub or PUSH => hub
* Asynchronous and multiprocessing:
* node listens on a main thread for instructions, then pushes instructions to other threads for processing. It can thus handle an unlimited number of instructions before the first have finished.
* hub listens on a main thread for requests, then pushes request processing to other threads.
* hub & node both send messages on main thread.


Metadata

Release files for odium 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for odium 0.0.1
File Size Uploaded Provenance
odium-0.0.1.tar.gz 2.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for odium 0.0.1
File Interpreter ABI Platform
odium-0.0.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 4.6 kB

Release files / odium-0.0.1.tar.gz

Download URL odium-0.0.1.tar.gz
Size 2.3 kB
Tags Source
SHA-256 checksum
How to use checksums
27410fc28ea236a15ea15a1fef5b3d6704b88eaa48a9a640500a9019d9bf9d7b
BLAKE2b-256 checksum
How to use checksums
b126ec55534bbcf18782d0f850e946bb24fdcf7467190a9be35bdc0a34cf8923
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / odium-0.0.1-py2.py3-none-any.whl

Download URL odium-0.0.1-py2.py3-none-any.whl
Size 2.3 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
ca6b61ae269a22af07eb04fbf434d1c7b814881dc5e2f90e5d51fffc279d927f
BLAKE2b-256 checksum
How to use checksums
d8cdaacdd7a59ca0fc303ee5dfc7711ec8a8b3cdeb0f15491d7fa11b6069f6d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for odium 0.0.1

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.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page