Python n-o-id component framework
Project description
noid — Node OID
noid (node + oid) is the Python-side component framework of the mundorum ecosystem. It mirrors the architecture of the companion JavaScript library oid so that components can be split cleanly across the stack: the JS side handles UI and rendering in the browser; the Python side handles data processing, workflows, and business logic on the server — or runs standalone on the desktop.
The name reflects the role: a noid is a processing node in a network of oid components.
Companion project
noid and oid share design principles and should always be developed together. The JS library lives at ~/git/mundorum/oid.
Core concepts
| Concept | Role |
|---|---|
| Bus | Asyncio pub/sub + provide/connect/invoke, same API as the JS Bus |
| OidBase | Spec-driven handler building, lifecycle, topic/notice mapping |
| OidComponent | Extension point for application components |
| Connection | Protocol abstraction that decouples the Bus bridge from any web framework |
| WorkflowAdapter | Protocol abstraction that decouples workflow orchestration from the engine |
Design principles
- Framework-independent core. The Bus, component model, and bridge logic import no web framework. noid can run with no server at all.
- Swappable adapters. Web frameworks (FastAPI, Django/Channels) and workflow engines (Dagster, Temporal, LangGraph) attach via Protocol adapters, not hard dependencies.
- Mirror the JS API. Where the JS oid library defines the shape of something, the Python side replicates it as closely as the language allows.
Installation
pip install n-o-id # core only — no web or workflow deps
pip install n-o-id[fastapi] # + FastAPI transport adapter
pip install n-o-id[django] # + Django Channels transport adapter
pip install n-o-id[dagster] # + Dagster workflow adapter (dataflow workloads)
pip install n-o-id[temporal] # + Temporal workflow adapter (agent workloads)
pip install n-o-id[langgraph] # + LangGraph workflow adapter (agent workloads)
Documentation
- Architecture — design decisions, component model, bus, hexagonal structure
- Transport adapters — connecting noid to FastAPI or Django
- Workflow integration — orchestrating dataflows and LLM agents
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mundorum_noid-0.1.4.tar.gz.
File metadata
- Download URL: mundorum_noid-0.1.4.tar.gz
- Upload date:
- Size: 29.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c298500fb434d188c0cb0e4dc338d043e7a947cf33093a83609f5a0ccd67524
|
|
| MD5 |
60aeeba6147f0fa8fc181c978b1237bf
|
|
| BLAKE2b-256 |
44d3f5766128bb08f05df83763ca090c5e73aa3c86e50147fe019092d7227295
|
File details
Details for the file mundorum_noid-0.1.4-py3-none-any.whl.
File metadata
- Download URL: mundorum_noid-0.1.4-py3-none-any.whl
- Upload date:
- Size: 33.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c6158f5c0fb901aaa84b31a10b8cbc1506afcf2899cfca7655c4861ca4b8173
|
|
| MD5 |
2f126d9dd709f2116d9ac559286bdcaa
|
|
| BLAKE2b-256 |
06e49acd4aeb7a1d7b1e75c6d88411d7460fd88012cb9105470067e39af2304a
|