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.7.tar.gz (57.8 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.7-py3-none-any.whl (72.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rosia-0.0.7.tar.gz
  • Upload date:
  • Size: 57.8 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.7.tar.gz
Algorithm Hash digest
SHA256 b13f1927389243e5933768788021e97b237344b505a46260eb6c1f6b1741f6d4
MD5 456ba5300833ec29b0fe3af0aa591d68
BLAKE2b-256 b4c973673f743cf9ea3b6f79e00f8b5559f5c488fef4daa74120491d347b840d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rosia-0.0.7.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.7-py3-none-any.whl.

File metadata

  • Download URL: rosia-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 72.7 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 d83d10e7a48b537eb48b3f13adf505166da2bd53f4a26f0d6eef4137f3c43898
MD5 525495440cceaa2cc89f7da6087e566f
BLAKE2b-256 82ac786772020a79bf825b9b681ee7000d34bd6264c38105d6083da0c29d5d97

See more details on using hashes here.

Provenance

The following attestation bundles were made for rosia-0.0.7-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