Skip to main content

Next-Gen event stream and workflow engine.

Project description

Logo

AmritaSense

PyPI Version Python Version License Discord QQ Group

"Sense is all you need."

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 SetIF/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 Future callbacks 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()

See more demos in demos/

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

amrita_sense-0.2.3.tar.gz (52.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amrita_sense-0.2.3-py3-none-any.whl (51.4 kB view details)

Uploaded Python 3

File details

Details for the file amrita_sense-0.2.3.tar.gz.

File metadata

  • Download URL: amrita_sense-0.2.3.tar.gz
  • Upload date:
  • Size: 52.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","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

Hashes for amrita_sense-0.2.3.tar.gz
Algorithm Hash digest
SHA256 8e5109676620d266cf1f1f93c6ce8aacd9941949a2bea22af6c7588a59fa4903
MD5 c19b251401e9e1a8ba42c470f8644619
BLAKE2b-256 c4e73925b5384380153f340e60d23f692f05d7ebf100da821e79870143c4cce3

See more details on using hashes here.

File details

Details for the file amrita_sense-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: amrita_sense-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 51.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","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

Hashes for amrita_sense-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6f4d7c493ae3a446fb41ca13ff16a35aa50bac1c093a8d56d1620887c8546aaf
MD5 b97985e9f582af2c034c16ea46a1ff73
BLAKE2b-256 5742e148a22222ba04501f30a97dccdd767d1ca2ee2f3c94d1afd9d47222f46c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page