Skip to main content

A robotic middleware in Python.

Project description

Rosia: Reproducible Robotic Middleware

Documentation | Tutorial | Issues | Join Slack | Blog

Install

pip install rosia

Alternatively, you can install from source:

git clone https://github.com/rosia-project/rosia.git
cd rosia
pip install -e .

Hello World

from rosia import InputPort, OutputPort, reaction, Node, Application
from rosia import log

@Node
class Greeter:
    output = OutputPort[str]()
    def start(self):
        self.output("Hello, World!")

@Node
class Printer:
    message = InputPort[str]()
    @reaction([message])
    def print_message(self):
        log.info(self.message)

if __name__ == "__main__":
    app = Application()
    greeter = app.create_node(Greeter())
    printer = app.create_node(Printer())
    greeter.output >>= printer.message
    app.execute()

Please give us a star ⭐️ if you enjoyed Rosia!

Contributing

Install Dev Dependencies

pip install --group dev .

Install Pre-commit Hooks

pre-commit install --hook-type commit-msg --hook-type pre-push --hook-type pre-commit
pre-commit run --all-files

Code is automatically formatted before committing. Commit messages should follow conventional commit.

Distribution Archives

python -m build
python -m twine upload dist/*

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

rosia-0.0.8.tar.gz (132.0 kB view details)

Uploaded Source

Built Distribution

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

rosia-0.0.8-py3-none-any.whl (145.5 kB view details)

Uploaded Python 3

File details

Details for the file rosia-0.0.8.tar.gz.

File metadata

  • Download URL: rosia-0.0.8.tar.gz
  • Upload date:
  • Size: 132.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rosia-0.0.8.tar.gz
Algorithm Hash digest
SHA256 81f5ed736fa60db3898e8bafea24cdee5f836ccde1bfec06234e9dbca8f46e5a
MD5 c49fff64b084fc82581327310071a5c7
BLAKE2b-256 29a1fae48ec46a8bbaa59058d6fc2437ad5d90f39bc46ea7acec50bcaf3eae93

See more details on using hashes here.

Provenance

The following attestation bundles were made for rosia-0.0.8.tar.gz:

Publisher: release.yml on rosia-project/rosia

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rosia-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: rosia-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 145.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rosia-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 548782c6f17bc029563f7a26ca0dffa30434faac37dc791cc9416c4579d3f4b2
MD5 65e50fa4e0b8c1812740228ae39abfee
BLAKE2b-256 a06cf4d9efdc2f6b892f820d8645149851aee640f6e057063bace51345de5cd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rosia-0.0.8-py3-none-any.whl:

Publisher: release.yml on rosia-project/rosia

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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