Repositories
bleRPC is organized into a main monorepo and several protocol library packages for each supported language.
Repository Relationships
A single shared set of .proto definitions backs one protocol library per language, consumed by the central apps and firmware.
Architecture Overview
tdaira/blerpc
The main monorepo containing firmware, central clients, code generators, and tests.
blerpc.proto)Protocol Libraries
Platform-independent protocol encoding/decoding libraries, published as separate packages for each language.
blerpc-protocol
Python C
Container splitting/reassembly, command encoding/decoding, and E2E encryption (key exchange + AES-128-GCM). The Python package is installable via pip. The C implementation (c/src/ + c/include/) is for embedded use.
pip install git+https://github.com/tdaira/blerpc-protocol.git
blerpc-protocol-swift
Swift
Swift Package for iOS and macOS. Uses Foundation and CryptoKit (Apple platform frameworks). Supports iOS 16+ and macOS 13+.
// Swift Package Manager
.package(url: "https://github.com/tdaira/blerpc-protocol-swift", from: "0.7.0")
blerpc-protocol-kt
Kotlin
Kotlin library for Android. Published to GitHub Packages (Maven).
implementation("com.blerpc:blerpc-protocol-kt:0.7.0")
blerpc-protocol-dart
Dart
Pure Dart library for Flutter. Published to pub.dev. Uses the cryptography package for encryption.
blerpc_protocol: ^0.7.0
blerpc-protocol-rn
TypeScript
TypeScript library for React Native. Uses @noble/ciphers, @noble/curves, and @noble/hashes for encryption (pure JS, no native dependencies).
"@blerpc/protocol-rn": "github:tdaira/blerpc-protocol-rn"
CI / CD
Each repository has GitHub Actions CI:
| Repository | CI Checks |
|---|---|
| blerpc | Python tests + ruff lint, C lint (clang-format), Go lint + build, iOS build, Android build, Flutter build, React Native build |
| blerpc-protocol | Python tests + lint, C lint + tests |
| blerpc-protocol-swift | swift build, swift test, SwiftLint |
| blerpc-protocol-kt | Gradle test, ktlint |
| blerpc-protocol-dart | dart analyze, dart test, auto-publish to pub.dev |
| blerpc-protocol-rn | eslint, prettier check, jest test, npm publish |
License
All bleRPC repositories are licensed under the Apache License 2.0, so you can use them freely in open- or closed-source projects, including embedded firmware.