Next-Gen event stream and workflow engine.
Project description
AmritaSense
"Any is thing all you need."
"Let developers return with Python again."
AmritaSense is a general-purpose workflow orchestration engine that replaces traditional graph-based models with an instruction set architecture—treating workflows not as nodes-and-edges diagrams, but as programmable execution streams driven by a lightweight virtual machine.
Why AmritaSense?
Most workflow engines force you into a graph mindset: define nodes, connect edges, manage state objects. AmritaSense takes a different path. You compose nodes and control flow just like writing ordinary code—the engine compiles them into a linear instruction sequence, then executes them step by step. The result: zero scheduling overhead, native interrupt support, and the expressive power of assembly-level control flow.
Core Features
- Complete Instruction Set—
IF/ELIF/ELSE,WHILE/DO-WHILE,GOTO/CALL,TRY/CATCH/THEN/FIN,NOP,INTERRUPT. All control flow is first-class, not simulated through graph routing. - VM-Style Execution—A program counter (
PointerVector) and call stack drive execution. Jumps are integer operations, not graph traversals. - Async-Native Suspend/Resume—Two
Futurecallbacks enable full workflow interruption at any node boundary. Built for debuggers and human-in-the-loop systems. - Declarative Dependency Injection—Nodes declare dependencies via function signatures. The engine resolves them at runtime with type matching and concurrent resolution.
- Ultra Lightweight—Core interpreter is ~300 lines. Compiles 100,000 nodes in ~200ms. Runs anywhere from Raspberry Pi to cloud.
- Self-Compile Instructions—Extend the instruction set with
SelfCompileInstruction. Compile-time expansion, zero runtime overhead.
Installation
pip install amrita-sense
Quick Look
from amrita_sense import Node, WorkflowInterpreter as WorkflowPC, IF, NOP
@Node()
def condition() -> bool: return True
@Node()
def action(): print("Done")
flow = IF(condition, action) >> NOP
pc = WorkflowPC(flow.render())
pc.run_sync()
Documentation
Full guides, concept explanations, and API reference at sense.amritabot.com.
Contributing
Contributions are welcome. See CONTRIBUTING.md and our Code of Conduct.
License
Apache V2. See LICENSE.
(Version <0.2.0 is LGPL V2, when 0.2.0 released, the license will be changed to Apache V2)
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 amrita_sense-0.2.1.tar.gz.
File metadata
- Download URL: amrita_sense-0.2.1.tar.gz
- Upload date:
- Size: 51.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1038782706f5d6cfcfd508335bb3d1e9c8bf4d87535ffca9f8c09d103443a133
|
|
| MD5 |
fbdb610688da55ec8ca88081c14ecc3e
|
|
| BLAKE2b-256 |
2637a9b6abd5686404de91beafe745aafdd51eddfd22278028576161f3d04ec1
|
File details
Details for the file amrita_sense-0.2.1-py3-none-any.whl.
File metadata
- Download URL: amrita_sense-0.2.1-py3-none-any.whl
- Upload date:
- Size: 48.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a33e14a2445cc27f43974127da05aa0706dd0b2686fd2d64912619f8b59b93c
|
|
| MD5 |
dc9fd60a608e6a7cb319fbff686b2d33
|
|
| BLAKE2b-256 |
91feadf41c14912ba152c283b95ecac14f971ccf1559788ab0bfb10f20e06249
|