The "No Compromise" IoT Platform
PidgeIoT is an open-source, edge-native IoT platform built entirely in Rust. It eliminates the traditional trade-off between edge performance and data sovereignty. By routing device-facing logic through Cloudflare Workers and allowing you to self-host your own data plane, PidgeIoT gives you massive global scale without vendor lock-in.
This project is structured as a Cargo Workspace containing three primary crates:
- 🗄️
dovecote(Backend): A serverless edge router built with Cloudflare Workers and Durable Objects. It handles low-latency ingestion, device provisioning, and session validation. - 🖥️
fancier(Frontend): A blazing-fast WebAssembly Single Page Application (SPA) built with Dioxus and styled with TailwindCSS & DaisyUI. This is the human-facing dashboard. - 💊
capsules(Shared Models): The shared data structures, serialization logic, and RPC schemas ensuring the frontend and backend are always 100% in sync.
Before you begin, ensure you have the following installed:
- Rust & Cargo (Latest stable)
- Bun or Node.js (for Cloudflare Wrangler)
- Dioxus CLI (
cargo install dioxus-cli) - Docker
- Docker Compose
PidgeIoT uses Ory Kratos for identity and session management. Start the local authentication and database containers from the root of the project:
docker-compose -f docker-compose.yml up --force-recreate- Kratos Admin UI: http://127.0.0.1:3000
- MailSlurper (Local Email Capture): http://127.0.0.1:4436
Open a new terminal window and start the Cloudflare Worker locally using Wrangler:
cd dovecote
bunx wrangler dev --ip 127.0.0.1 --port 8787 --env devThe API will be available at http://127.0.0.1:8787
Open a third terminal window and start the Dioxus development server:
cd fancier
dx serve --addr 127.0.0.1 --port 4455The Dashboard will be available at http://127.0.0.1:4455
For live CSS changes run tailwindCSS in watch mode
cd fancier
bunx @tailwindcss/cli -i ./assets/tailwind.css -o ./assets/styling/main.css --watchTo rebuild the Architecture diagram run
cd fancier
bunx mmdc -i assets/architecture.mmd -o assets/images/architecture.svg -b transparentPidgeIoT is open-source. We welcome contributions regarding device protocol support (CoAP, MQTT, custom NIDD over cellular), frontend improvements, or core backend stability. Please open an issue before submitting major architectural pull requests.