fabric
is a robust framework for building networks of autonomous agents, providing a flexible and scalable solution for creating, managing, and orchestrating distributed systems.
- Hybrid Rust and Python implementation for optimal performance and flexibility
- Zenoh-based communication for efficient and reliable data exchange
- Support for both Rust and Python nodes
- Configurable node behavior and dynamic reconfiguration
- Telemetry data collection and publishing
- Command handling for node control
- Heartbeat mechanism for node health monitoring
rust/
fabric/
: Core Rust library for the fabric systemexamples/
: Example implementations using the fabric libraryexample_node/
: Example of a Rust node implementation (Quadcopter)example_orchestrator/
: Example of a Rust orchestrator implementation
python/
fabric/
: Core Python library for the fabric systemexamples/
: Example implementations using the fabric libraryexample_quadcopter_node.py
: Example of a Python node implementation
This project includes an example deployment using Kubernetes and Helm charts. This is just one possible way to deploy a fabric-based system.
helm/
: Helm charts for example Kubernetes deploymentdocker/
: Dockerfiles for building example containers.github/workflows/
: CI/CD configuration for the example deployment
- Docker
- k3d
- kubectl
- Helm
- Rust (for Rust components)
- Python 3.12.7 (for Python components)
-
Build all services:
./build_services.bash
-
Deploy the fabric system:
./deploy_fabric.bash
This script will create a k3d cluster, set up a local registry, and deploy the Helm chart.
This project uses pre-commit hooks to ensure code quality and consistency. To set up pre-commit hooks:
-
Install pre-commit:
pip install pre-commit
-
Install the git hook scripts:
pre-commit install
To run the Python tests:
pytest python/tests
cargo test
This project is licensed under the MIT License. See the LICENSE file for details.