Skip to content

Commit e81dca0

Browse files
committed
Merge release/aimdb-v0.3.0 into main
Release v0.3.0 - RecordId/RecordKey Architecture & Buffer Metrics Major features: - Multi-instance records with RecordId/RecordKey system - Buffer metrics API (feature-gated) - Enhanced introspection APIs - O(1) record access optimization See docs/releases/v0.3.0.md for complete details.
2 parents 5cff063 + b6c01ef commit e81dca0

14 files changed

Lines changed: 707 additions & 75 deletions

File tree

Cargo.lock

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ resolver = "2"
2323
default-members = ["aimdb-core"]
2424

2525
[workspace.package]
26-
version = "0.2.0"
26+
version = "0.3.0"
2727
edition = "2021"
2828
authors = ["AimDB Team <team@aimdb.dev>"]
2929
license = "Apache-2.0"

README.md

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
[![Docs](https://docs.rs/aimdb-core/badge.svg)](https://docs.rs/aimdb-core)
1212
[![Website](https://img.shields.io/badge/website-aimdb.dev-blue.svg)](https://aimdb.dev)
1313

14-
> **⚠️ PRE-RELEASE v0.2.0**
15-
> AimDB v0.2.0 includes core functionality, MQTT/KNX connectors, and developer tools. The architecture is stable, but APIs may evolve based on community feedback. Production use is possible but proceed with caution and thorough testing.
14+
> **⚠️ PRE-RELEASE v0.3.0**
15+
> AimDB v0.3.0 includes core functionality, multi-instance records, buffer metrics, MQTT/KNX connectors, and developer tools. The architecture is stable, but APIs may evolve based on community feedback. Production use is possible but proceed with caution and thorough testing.
1616
1717
> **One codebase. Any hardware. Always in sync.**
1818
@@ -45,21 +45,24 @@ Modern IoT stacks are fragmented:
4545

4646
---
4747

48-
## 🎉 What's New in v0.2.0
48+
## 🎉 What's New in v0.3.0
4949

50-
**Latest Release** - November 21, 2025
50+
**Latest Release** - December 6, 2025
5151

5252
Recent additions and improvements:
5353

54+
-**Multi-Instance Records**: Register multiple records of the same type with unique keys
55+
-**RecordId/RecordKey Architecture**: O(1) stable indexing with zero-allocation static keys
56+
-**Buffer Metrics**: Comprehensive metrics for monitoring and debugging (feature-gated)
57+
-**Enhanced Introspection**: New APIs for runtime record exploration (NEW in v0.3.0)
5458
-**Type-Safe Core**: `TypeId`-based record routing eliminates runtime string lookups
5559
-**Dual Runtime**: Works on both Tokio (std) and Embassy (no_std/embedded)
5660
-**Three Buffer Types**: SPMC Ring, SingleLatest, and Mailbox patterns
5761
-**MQTT Integration**: Connector works in both std and embedded environments
58-
-**KNX Integration**: Building automation support for std and embedded (NEW in v0.2.0)
62+
-**KNX Integration**: Building automation support for std and embedded
5963
-**Remote Access**: AimX protocol for cross-process introspection
6064
-**Sync API**: Blocking wrapper for non-async codebases
6165
-**Developer Tools**: MCP server for LLM-powered debugging, CLI tools, and client library
62-
-**Production Ready**: Comprehensive tests, CI/CD, security audits, and documentation
6366

6467
See [CHANGELOG.md](CHANGELOG.md) for complete details.
6568

@@ -72,30 +75,34 @@ Add AimDB to your project:
7275
```toml
7376
# For standard library (Tokio runtime)
7477
[dependencies]
75-
aimdb-core = "0.2"
76-
aimdb-tokio-adapter = "0.2"
78+
aimdb-core = "0.3"
79+
aimdb-tokio-adapter = "0.3"
7780

7881
# Optional: MQTT connector
79-
aimdb-mqtt-connector = { version = "0.2", features = ["tokio-runtime"] }
82+
aimdb-mqtt-connector = { version = "0.3", features = ["tokio-runtime"] }
8083

8184
# Optional: KNX connector (building automation)
82-
aimdb-knx-connector = { version = "0.1", features = ["tokio-runtime"] }
85+
aimdb-knx-connector = { version = "0.2", features = ["tokio-runtime"] }
8386

8487
# Optional: Synchronous API
85-
aimdb-sync = "0.2"
88+
aimdb-sync = "0.3"
8689

8790
# Optional: Remote client
88-
aimdb-client = "0.2"
91+
aimdb-client = "0.3"
92+
93+
# Optional: Enable buffer metrics
94+
# aimdb-core = { version = "0.3", features = ["metrics"] }
95+
# aimdb-tokio-adapter = { version = "0.3", features = ["metrics"] }
8996
```
9097

9198
For embedded systems using Embassy:
9299

93100
```toml
94101
[dependencies]
95-
aimdb-core = { version = "0.2", default-features = false }
96-
aimdb-embassy-adapter = { version = "0.2", default-features = false, features = ["embassy-runtime"] }
97-
aimdb-mqtt-connector = { version = "0.2", default-features = false, features = ["embassy-runtime"] }
98-
aimdb-knx-connector = { version = "0.1", default-features = false, features = ["embassy-runtime"] }
102+
aimdb-core = { version = "0.3", default-features = false }
103+
aimdb-embassy-adapter = { version = "0.3", default-features = false, features = ["embassy-runtime"] }
104+
aimdb-mqtt-connector = { version = "0.3", default-features = false, features = ["embassy-runtime"] }
105+
aimdb-knx-connector = { version = "0.2", default-features = false, features = ["embassy-runtime"] }
99106
```
100107

101108
---
@@ -164,7 +171,7 @@ async fn main() -> DbResult<()> {
164171

165172
let mut builder = AimDbBuilder::new().runtime(runtime);
166173

167-
builder.configure::<Temperature>(|reg| {
174+
builder.configure::<Temperature>("sensor.temperature", |reg| {
168175
reg.buffer(BufferCfg::SpmcRing { capacity: 32 })
169176
.source(temperature_producer);
170177
});

aimdb-client/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aimdb-client"
3-
version = "0.2.0"
3+
version = "0.3.0"
44
edition = "2021"
55
license.workspace = true
66
repository.workspace = true
@@ -11,7 +11,7 @@ categories = ["database", "network-programming"]
1111

1212
[dependencies]
1313
# Core dependencies - protocol types from aimdb-core
14-
aimdb-core = { version = "0.2.0", path = "../aimdb-core", features = ["std"] }
14+
aimdb-core = { version = "0.3.0", path = "../aimdb-core", features = ["std"] }
1515

1616
# Serialization
1717
serde = { version = "1", features = ["derive"] }

aimdb-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aimdb-core"
3-
version = "0.2.0"
3+
version = "0.3.0"
44
edition = "2021"
55
license.workspace = true
66
repository.workspace = true

aimdb-embassy-adapter/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aimdb-embassy-adapter"
3-
version = "0.2.0"
3+
version = "0.3.0"
44
edition = "2021"
55
license.workspace = true
66
repository.workspace = true
@@ -45,7 +45,7 @@ aimdb-executor = { version = "0.1.0", path = "../aimdb-executor", default-featur
4545
] }
4646

4747
# Core AimDB types - no_std for Embassy (for DbError integration)
48-
aimdb-core = { version = "0.2.0", path = "../aimdb-core", default-features = false }
48+
aimdb-core = { version = "0.3.0", path = "../aimdb-core", default-features = false }
4949

5050
# Stream trait for bidirectional connectors (minimal, no_std compatible)
5151
futures-core = { version = "0.3", default-features = false }

aimdb-knx-connector/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aimdb-knx-connector"
3-
version = "0.1.0"
3+
version = "0.2.0"
44
edition = "2021"
55
authors.workspace = true
66
license.workspace = true
@@ -34,9 +34,9 @@ defmt = [
3434
] # Only use knx-pico's defmt for logging
3535

3636
[dependencies]
37-
aimdb-core = { version = "0.2.0", path = "../aimdb-core", default-features = false }
37+
aimdb-core = { version = "0.3.0", path = "../aimdb-core", default-features = false }
3838
aimdb-executor = { version = "0.1.0", path = "../aimdb-executor", default-features = false }
39-
aimdb-embassy-adapter = { version = "0.2.0", path = "../aimdb-embassy-adapter", default-features = false, optional = true }
39+
aimdb-embassy-adapter = { version = "0.3.0", path = "../aimdb-embassy-adapter", default-features = false, optional = true }
4040

4141
# Use official crates.io version
4242
# External users should patch this to aimdb-dev/knx-pico fork until fixes are upstreamed

aimdb-mqtt-connector/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aimdb-mqtt-connector"
3-
version = "0.2.0"
3+
version = "0.3.0"
44
edition = "2021"
55
authors.workspace = true
66
license.workspace = true
@@ -38,9 +38,9 @@ tracing = ["dep:tracing", "aimdb-core/tracing"]
3838
defmt = ["dep:defmt", "aimdb-core/defmt"]
3939

4040
[dependencies]
41-
aimdb-core = { version = "0.2.0", path = "../aimdb-core", default-features = false }
41+
aimdb-core = { version = "0.3.0", path = "../aimdb-core", default-features = false }
4242
aimdb-executor = { version = "0.1.0", path = "../aimdb-executor", default-features = false }
43-
aimdb-embassy-adapter = { version = "0.2.0", path = "../aimdb-embassy-adapter", default-features = false, optional = true }
43+
aimdb-embassy-adapter = { version = "0.3.0", path = "../aimdb-embassy-adapter", default-features = false, optional = true }
4444

4545
# Error handling (std only)
4646
thiserror = { workspace = true, optional = true }

aimdb-sync/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aimdb-sync"
3-
version = "0.2.0"
3+
version = "0.3.0"
44
edition = "2021"
55
authors.workspace = true
66
license.workspace = true
@@ -11,8 +11,8 @@ categories = ["database", "api-bindings"]
1111

1212
[dependencies]
1313
# Core dependencies
14-
aimdb-core = { path = "../aimdb-core", version = "0.2.0" }
15-
aimdb-tokio-adapter = { path = "../aimdb-tokio-adapter", version = "0.2.0" }
14+
aimdb-core = { path = "../aimdb-core", version = "0.3.0" }
15+
aimdb-tokio-adapter = { path = "../aimdb-tokio-adapter", version = "0.3.0" }
1616

1717
# Tokio for channels and runtime
1818
tokio = { version = "1.40", features = ["sync", "rt", "time"] }

aimdb-tokio-adapter/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aimdb-tokio-adapter"
3-
version = "0.2.0"
3+
version = "0.3.0"
44
edition = "2021"
55
authors.workspace = true
66
license.workspace = true
@@ -35,7 +35,7 @@ aimdb-executor = { version = "0.1.0", path = "../aimdb-executor", default-featur
3535
] }
3636

3737
# Core AimDB types - std version for Tokio (for DbError integration)
38-
aimdb-core = { version = "0.2.0", path = "../aimdb-core", default-features = false, features = [
38+
aimdb-core = { version = "0.3.0", path = "../aimdb-core", default-features = false, features = [
3939
"std",
4040
] }
4141

0 commit comments

Comments
 (0)