Skip to content

justins-engineering/pidgeiot

Repository files navigation

PidgeIoT 🕊️

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.

🏗️ Architecture & Workspace

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.

🚀 Development Guide

Prerequisites

Before you begin, ensure you have the following installed:

1. Start the Local Services (Auth & Mail)

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

2. Start the Edge Backend (dovecote)

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 dev

The API will be available at http://127.0.0.1:8787

3. Start the Web Frontend (fancier)

Open a third terminal window and start the Dioxus development server:

cd fancier
dx serve --addr 127.0.0.1 --port 4455

The Dashboard will be available at http://127.0.0.1:4455

4. Frontend development

For live CSS changes run tailwindCSS in watch mode

cd fancier
bunx @tailwindcss/cli -i ./assets/tailwind.css -o ./assets/styling/main.css --watch

To rebuild the Architecture diagram run

cd fancier
bunx mmdc -i assets/architecture.mmd -o assets/images/architecture.svg -b transparent

🤝 Contributing

PidgeIoT 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.

About

An open-source, edge-native IoT platform built in 100% Rust. Combining Cloudflare Workers performance with self-hosted data sovereignty.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors