A minimal operating system for robotics.
Project description
🤖 TinyROS - A minimal operating systems for Robots
A minimal implementation of an operating system for robots, to ease the integration of sensors, actuators, and heavy compute directly in the physical world.
🏛️ Design Philosophy
🪶 Single-file solution: TinyROS ships its own minimal transport — an RPC-style pub/sub wire on top of AF_UNIX (TCP loopback on Windows) with a multiprocessing.shared_memory side-channel for large ndarray payloads. It works under the assumption that in most robotic systems, communication is primarily peer-to-peer or involves only a few subscribers per publisher (in ROS terminology). This targeted approach lets us strip complexity down significantly: we deliberately avoid the entire ROS ecosystem baggage while providing the familiar publisher-subscriber pattern for the 90% of use cases that don't need the full complexity of ROS2.
✨ Cross-platform and easy to install: TinyROS comes without installation headaches and is extremely lean while being cross-platform. You can develop on macOS, Windows, Linux, etc. It maintains the same (or better) efficiency as ROS2 implementations while being completely written in Python. We increase flexibility, ease of use, clarity, and reduce package size without compromising performance.
🎯 Static configuration over dynamic discovery: Unlike traditional ROS systems that rely on dynamic node discovery and runtime topic resolution, TinyROS deliberately enforces a static network configuration defined upfront. This design choice is a feature, not a bug. By requiring explicit declaration of all nodes, topics, and connections in a YAML configuration file, we achieve:
- Clarity: The entire system topology is visible at a glance
- Predictability: No surprises from nodes appearing or disappearing at runtime
- Debugging: Easy to trace data flow and identify connection issues
- Documentation: The network config serves as living documentation of your system
- Reliability: Eliminates race conditions and discovery-related failures
We believe that for most robotics applications, the network topology is known at design time and changes infrequently. Embracing this reality leads to simpler, more robust systems.
🏗️ Projects Built with TinyROS
TinyROS has been used in the following robotics projects:
If you use TinyROS in your project, please open a PR to add it here 🤗.
🚀 Quick Start
For once, this is going to be painless 🤗.
Installation
With uv:
uv add tinyros
With pip:
pip install tinyros
For the installation from source or for development, please see our Contributing Guide.
Supported Platforms 💻
| Linux | macOS | Windows |
|---|---|---|
| ✅ | ✅ | n/a (likely) |
🔥 Examples
A full example is available in main.py.
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for detailed information on:
- Development workflow and branch management
- Code style requirements and automated checks
- Testing standards and coverage expectations
- PR preparation and commit message conventions
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
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 tinyros-0.4.0.tar.gz.
File metadata
- Download URL: tinyros-0.4.0.tar.gz
- Upload date:
- Size: 44.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcde729b0b50a650cfdae22e5fbb682924119b89015fa575b8223c7b1dc825a0
|
|
| MD5 |
c3e647df51764e6be21bd5128dd30139
|
|
| BLAKE2b-256 |
8cb8c17f8c8302d6ec57e9871d9a197443eec7402d2dd4cb63e5d121242e24e5
|
File details
Details for the file tinyros-0.4.0-py3-none-any.whl.
File metadata
- Download URL: tinyros-0.4.0-py3-none-any.whl
- Upload date:
- Size: 26.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7339508faa2d7bcbbfcc3005e7d929374e06c7a46a4c1a4d724a333321c848c1
|
|
| MD5 |
58208e6587e91132992ce66d4a3ce654
|
|
| BLAKE2b-256 |
62bd67dbaf99ba970359660c3d6263f53c002ae3e338e7d21d12e74c0a691dbe
|