How abuyi39/chirpstack works
ChirpStack is a LoRaWAN network server with a web management UI, gRPC API, gateway connectivity, protocol processing, persistent state, and configurable application-data integrations. A typical operational flow carries gateway traffic through uplink processing and stored device state; downlink scheduling sends responses back through the gateway backend, while application events can be delivered to configured integrations. The tree and README establish these major capabilities, but sampled excerpts do not expose all runtime wiring, so uncertain call edges are omitted.
Main entry points: uplink/mod.rs Uplink processing · backend/mod.rs Gateway transport · api/mod.rs gRPC services · App.tsx Web console
Components 18
Management UI
- Web console
ui/src/App.tsx - UI stores
ui/src/stores
Service API
- gRPC services
chirpstack/src/api/mod.rs - API contract
api/proto/api
LoRaWAN Network
- Gateway transport
chirpstack/src/gateway/backend/mod.rs - Uplink processing
chirpstack/src/uplink/mod.rs - LoRaWAN protocol
lrwn/src/lib.rs - Rate adaptation
chirpstack/src/adr/mod.rs - Downlink scheduling
chirpstack/src/downlink/mod.rs
Persistent State
- Network database
chirpstack/src/storage/mod.rs - Device state
chirpstack/src/storage/device_session.rs
Event Delivery
- Integration events
chirpstack/src/stream/event.rs - Integration dispatch
chirpstack/src/integration/mod.rs - Cloud connectors
chirpstack/src/integration
Other components
- Network operator
- API client
- LoRaWAN gateway
- Cloud services
Connections 17
- Network operator → Web console: manages network
- Web console → UI stores: requests data
- UI stores → gRPC services: calls services
- API client → gRPC services: calls services
- API contract → gRPC services: defines RPCs
- gRPC services → Network database: reads and writes
- LoRaWAN gateway → Gateway transport: sends frames
- Gateway transport → Uplink processing: forwards uplinks
- Uplink processing → LoRaWAN protocol: decodes frames
- Uplink processing → Device state: uses session state
- Device state → Network database: persists state
- Uplink processing → Rate adaptation: adapts data rate
- Downlink scheduling → Gateway transport: sends downlinks
- Gateway transport → LoRaWAN gateway: transmits frames
- Integration events → Integration dispatch: dispatches events
- Integration dispatch → Cloud connectors: selects connector
- Cloud connectors → Cloud services: publishes events