Repository navigation
Releases: untacorp/airdb
Release list
v0.2.1: AirDB Decentralized Replication Engine
AirDB v0.2.1: Hardened Persistence, Bitcask Log Integration, and Maintainer-Grade Core
AirDB v0.2.1 is a stabilization, performance, and architectural hardening release. It introduces the high-throughput AeroLog Bitcask append-only persistence adapter for Kotlin/Android, resolves 12 audited concurrency and security edge cases (PR #33), and ruthlessly refactors the codebase under Linux-kernel clean code discipline (PR #34).
What is New in v0.2.1
1. High-Throughput AeroLog Persistence (airdb-adapter-aerolog)
- Append-Only Bitcask Log: First-class integration with the Rust-native AeroLog storage engine via Mozilla UniFFI, achieving over 200,000 sequential writes/sec with hardware-accelerated CRC32-IEEE checksums and zero random flash I/O.
- Single-Seek Point Reads: In-memory
KeyDirhash indexing delivers sub-15-microsecond point reads directly to 64-bit file offsets. - Tombstone Compaction: Garbage collection of soft-deleted records past HLC retention thresholds, purging dead keys from KeyDir and reclaiming physical segment space via Bitcask compaction.
- O(1) HLC Tracking: Restored
updateMaxSeenHlccaching across changelog writes and mutation imports to eliminate linear stream scans.
2. Consolidated Security & Concurrency Audit (PR #33, Issues #9 to #20)
- Reconciliation Data Starvation (#9): Continuous delta batch streaming prevents peer starvation under heavy write workloads.
- Transport Wire Framing & Encryption (#10): Bound full 23B/31B packet headers as Authenticated Additional Data (AAD) in ChaCha20-Poly1305 AEAD across Android and Apple transports.
- Changelog Scan Memory Bounding (#11, #15): Cursor-based chunked pagination in SQLite and a 10,000-entry safety ceiling in AeroLog prevent heap exhaustion.
- HLC Canonical Ordering (#12): Unified three-tuple
(physicalTime, logicalCounter, originNode)total ordering across Kotlin and Swift. - GATT Operation Queue Watchdog (#13, #14): Added retry budget limits and watchdog timers to prevent Android BLE queue hangs and deadlocks.
- CoreBluetooth ATT Write Drain (#16): Added backpressure drain tracking
peripheralIsReady(toSendWriteWithoutResponse:). - Zip-Bomb Protection (#17): Enforced strict 64KB max decompressed payload budget in
BinaryCodec. - SQLite Tombstone Indexing (#18): Added composite
(physical_time, logical_counter, origin_node)indexes and atomic changelog compaction. - Swift Concurrency Hardening (#19): Replaced unstructured detached tasks with structured actor tasks and clean lifecycle cancellation.
- KMP Concurrency Alignment (#20): Aligned coroutine dispatchers and lifecycle management with Kotlin Multiplatform standards.
3. Maintainer-Grade Clean Code Discipline (PR #34)
- Linux Kernel Filter: Eliminated narrative "obvious" comments, corporate filler naming (
dataBuffer,tempResult,pt/lc/nh->physicalTime/logicalCounter/originNode), and flattened nested conditionals via guard clauses and bouncer patterns (Linus' 3-indent law). - Net-Negative Lines: Reduced overall code footprint while maintaining 100% green test passes across both Linux OpenJDK and macOS Swift CI.
- Invariant 6 Enforcement: Reaffirmed zero external SPM dependencies in
AirDbKiton Apple platforms, providing clean BYOD documentation for custom adapters.
Installation & Coordinates
Android & JVM (Maven Central)
Add to your build.gradle.kts:
dependencies {
// Core synchronization engine and Hybrid Logical Clock
implementation("io.github.untacorp:airdb-core:0.2.1")
// Cryptographic mesh primitives (ChaCha20-Poly1305, Ed25519, HKDF)
implementation("io.github.untacorp:airdb-crypto:0.2.1")
// Durable SQLite persistence with WAL mode
implementation("io.github.untacorp:airdb-adapter-sqlite:0.2.1")
// High-throughput AeroLog Bitcask storage adapter
implementation("io.github.untacorp:airdb-adapter-aerolog:0.2.1")
// Production Android BLE transport driver
implementation("io.github.untacorp:airdb-transport-ble:0.2.1")
}Apple Platforms (Swift Package Manager)
Add to your Package.swift:
dependencies: [
.package(url: "https://github.com/untacorp/airdb.git", from: "0.2.1")
]Or in Xcode: File > Add Package Dependencies... and enter:
https://github.com/untacorp/airdb.git
Quickstart
Kotlin (Android / JVM with AeroLog)
import io.airdb.adapter.aerolog.AeroLogAirDbAdapter
import io.airdb.core.engine.AirDbEngine
import io.airdb.transport.ble.AndroidBleTransport
import java.io.File
val storageDir = File(context.filesDir, "aerolog_data")
val adapter = AeroLogAirDbAdapter.open(storageDir, nodeId = "node-alpha")
val engine = AirDbEngine(
nodeName = "node-alpha",
adapter = adapter,
transport = AndroidBleTransport(context)
)
engine.start()Swift (iOS / macOS with SqliteDbAdapter)
import AirDbKit
let adapter = try SqliteDbAdapter.open(path: dbUrl.path)
let engine = AirDbEngine(
nodeName = "apple-node-01",
adapter = adapter,
transport = CoreBluetoothTransport()
)
engine.start()Integrity & Verification
All release artifacts are cryptographically signed using the maintainer GPG key:
- Key ID:
CEB164B84F724DCC - Fingerprint:
11FF 32A2 9FE9 E6E3 14A4 8894 CEB1 64B8 4F72 4DCC - Signer:
Agus Arya <kadekaguspnata@gmail.com>
To verify signatures locally:
gpg --keyserver keyserver.ubuntu.com --recv-keys CEB164B84F724DCC
gpg --verify airdb-core-0.2.1.jar.asc airdb-core-0.2.1.jarDocumentation & Prior Art
- Official Documentation: https://untacorp.github.io/airdb/
- Publishing & Release Guide: https://untacorp.github.io/airdb/community/publishing/
- Full Changelog: See CHANGELOG.md
v0.2.0: AirDB Decentralized Replication Engine
AirDB v0.2.0: Zero-Trust Cryptographic Mesh & Durable Persistence
AirDB v0.2.0 is a milestone release delivering production-grade security, durable write-ahead logging (WAL) persistence, and complete cross-platform parity across Android (JVM) and Apple platforms (iOS, macOS).
What is New in v0.2.0
1. Zero-Trust Cryptographic Mesh (airdb-crypto & AirDbKit/Crypto)
-
RFC 8439 ChaCha20-Poly1305 AEAD: Full symmetric packet payload encryption using Java 17 JCA on Android/JVM and native Apple
CryptoKiton iOS/macOS. Wire packet headers (23B/31B) are bound as Authenticated Additional Data ($AAD$ ), preventing header spoofing and replay attacks. - RFC 8032 Ed25519 Digital Signatures: Every mutating record is stamped with a 32-byte author public key and 64-byte Ed25519 digital signature. Non-repudiation and author provenance are preserved across untrusted mesh relay nodes.
- RFC 5869 HKDF-SHA256: Deterministic cluster and session key derivation.
-
Strict Signature Verification:
SyncSessiondrops any unverified, forged, or tampered record during peer reconciliation.
2. Durable SQLite Persistence (airdb-adapter-sqlite & SqliteDbAdapter)
- JVM & Android: Production SQLite adapter with Write-Ahead Logging (WAL mode), immediate write transactions, and indexed Hybrid Logical Clock (HLC) ranges.
- Apple (iOS / macOS): Native Swift SQLite adapter (
SqliteDbAdapter) implemented directly over Applelibsqlite3with zero third-party dependencies. - Anti-Resurrection Soft Deletes: Tombstone lifecycle management preventing deleted records from resurrecting across partitioned network edges.
3. Apple Platform Parity (AirDbKit)
- Distributed as a native Swift package via Swift Package Manager (SPM).
- Dual-role BLE driver (
CoreBluetoothTransport) acting simultaneously as Central and Peripheral with an internal backpressure drain queue. - Modern Swift concurrency (
actor,async/await,Sendable) ensuring 100% compile-time thread safety.
4. Hardened Android BLE Driver (airdb-transport-ble)
- Single-flight
GattOperationQueuepreventing Android OS GATT deadlocks and buffer overruns. - Dynamic MTU negotiation up to 517 bytes with automatic MTU-aware packet fragmentation.
- Comprehensive runtime permission helper (
AndroidBlePermissions) for Android 12+ (API 31+) and legacy versions.
Installation & Coordinates
Android & JVM (Maven Central)
Add to your build.gradle.kts:
dependencies {
// Core synchronization engine and Hybrid Logical Clock
implementation("io.github.untacorp:airdb-core:0.2.0")
// Cryptographic mesh primitives (ChaCha20-Poly1305, Ed25519, HKDF)
implementation("io.github.untacorp:airdb-crypto:0.2.0")
// Durable SQLite persistence with WAL mode
implementation("io.github.untacorp:airdb-adapter-sqlite:0.2.0")
// Hardware BLE transport driver for Android
implementation("io.github.untacorp:airdb-transport-ble:0.2.0")
}Apple Platforms (Swift Package Manager)
Add to your Package.swift:
dependencies: [
.package(url: "https://github.com/untacorp/airdb.git", from: "0.2.0")
]Or in Xcode: File > Add Package Dependencies... and enter:
https://github.com/untacorp/airdb.git
Quickstart
Kotlin (Android)
val sqliteAdapter = SqliteAirDbAdapter(dbPath = File(context.filesDir, "airdb.db").absolutePath)
val cryptoEngine = ChaCha20CryptoEngine(clusterKey = clusterKey32Bytes)
val engine = AirDbEngine(
nodeId = "android-node-01",
dbAdapter = sqliteAdapter,
transport = AndroidBleTransport(context),
cryptoEngine = cryptoEngine
)
engine.start()Swift (iOS / macOS)
import AirDbKit
let sqliteAdapter = try SqliteDbAdapter(databasePath: dbUrl.path)
let cryptoEngine = ChaCha20Poly1305Engine(clusterKey: clusterKeyData)
let engine = AirDbEngine(
nodeId: "ios-node-01",
dbAdapter: sqliteAdapter,
transport: CoreBluetoothTransport(),
cryptoEngine: cryptoEngine
)
try await engine.start()Integrity & Verification
All release artifacts are cryptographically signed using the project maintainer GPG key:
- Key ID:
CEB164B84F724DCC - Fingerprint:
11FF 32A2 9FE9 E6E3 14A4 8894 CEB1 64B8 4F72 4DCC - Signer:
Agus Arya <kadekaguspnata@gmail.com>
To verify signatures locally:
gpg --keyserver keyserver.ubuntu.com --recv-keys CEB164B84F724DCC
gpg --verify airdb-core-0.2.0.jar.asc airdb-core-0.2.0.jarDocumentation & Prior Art
- Official Documentation: https://untacorp.github.io/airdb/
- AI Agent Context: https://untacorp.github.io/airdb/llms.txt
- Full Changelog: See CHANGELOG.md