Skip to content

Commit 2061f40

Browse files
committed
Bump to v1.0.0 and update docs and examples
Update Cargo.toml/Cargo.lock and CHANGELOG; refresh README and ARCHITECTURE version references. Add runnable example instructions, reorganize/bgpkit examples, convert a parsing example to print actual results and add a missing import, and bump server_version in the server README
1 parent 60a251d commit 2061f40

File tree

13 files changed

+120
-406
lines changed

13 files changed

+120
-406
lines changed

ARCHITECTURE.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -332,13 +332,13 @@ Library users can select minimal features based on their needs:
332332

333333
```toml
334334
# Minimal database access
335-
monocle = { version = "0.10", default-features = false, features = ["database"] }
335+
monocle = { version = "1.0", default-features = false, features = ["database"] }
336336

337337
# BGP operations without CLI overhead
338-
monocle = { version = "0.10", default-features = false, features = ["lens-bgpkit"] }
338+
monocle = { version = "1.0", default-features = false, features = ["lens-bgpkit"] }
339339

340340
# Full functionality without CLI
341-
monocle = { version = "0.10", default-features = false, features = ["lens-full"] }
341+
monocle = { version = "1.0", default-features = false, features = ["lens-full"] }
342342
```
343343

344344
## Related Documents

CHANGELOG.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
All notable changes to this project will be documented in this file.
44

5-
## Unreleased
5+
## v1.0.0 - 2025-12-18
66

77
This is a major release with significant architectural changes, new commands, and breaking changes.
88

@@ -158,13 +158,13 @@ Library users can now use monocle with minimal dependencies:
158158
Usage examples:
159159
```toml
160160
# Minimal database access
161-
monocle = { version = "0.10", default-features = false, features = ["database"] }
161+
monocle = { version = "1.0", default-features = false, features = ["database"] }
162162

163163
# BGP operations without CLI overhead
164-
monocle = { version = "0.10", default-features = false, features = ["lens-bgpkit"] }
164+
monocle = { version = "1.0", default-features = false, features = ["lens-bgpkit"] }
165165

166166
# Full functionality
167-
monocle = { version = "0.10", default-features = false, features = ["lens-full"] }
167+
monocle = { version = "1.0", default-features = false, features = ["lens-full"] }
168168
```
169169

170170
### Improvements

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "monocle"
3-
version = "0.9.1"
3+
version = "1.0.0"
44
authors = ["Mingwei Zhang <mingwei@bgpkit.com>"]
55
edition = "2021"
66
readme = "README.md"
@@ -20,7 +20,7 @@ required-features = ["cli"]
2020
# Existing examples (require lens-bgpkit)
2121
[[example]]
2222
name = "search_bgp_messages"
23-
path = "examples/search_bgp_messages.rs"
23+
path = "examples/bgpkit/search_bgp_messages.rs"
2424
required-features = ["lens-bgpkit"]
2525

2626
[[example]]
@@ -70,11 +70,6 @@ name = "mrt_parsing"
7070
path = "examples/bgpkit/mrt_parsing.rs"
7171
required-features = ["lens-bgpkit"]
7272

73-
[[example]]
74-
name = "bgp_search"
75-
path = "examples/bgpkit/bgp_search.rs"
76-
required-features = ["lens-bgpkit"]
77-
7873
# Full examples - all features
7974
[[example]]
8075
name = "inspect_unified"
@@ -221,6 +216,7 @@ async-trait = { version = "0.1", optional = true }
221216
tower-http = { version = "0.5", features = ["cors", "trace"], optional = true }
222217

223218
[dev-dependencies]
219+
bgpkit-parser = { version = "0.13.0", features = ["serde"] }
224220
tempfile = "3"
225221
futures-util = "0.3"
226222
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,16 @@ Monocle can also be used as a library in your Rust projects. Add it to your `Car
6767
```toml
6868
[dependencies]
6969
# Full library with CLI argument support (default)
70-
monocle = "0.10"
70+
monocle = "1.0"
7171

7272
# Minimal database access only
73-
monocle = { version = "0.10", default-features = false, features = ["database"] }
73+
monocle = { version = "1.0", default-features = false, features = ["database"] }
7474

7575
# BGP operations without CLI overhead
76-
monocle = { version = "0.10", default-features = false, features = ["lens-bgpkit"] }
76+
monocle = { version = "1.0", default-features = false, features = ["lens-bgpkit"] }
7777

7878
# Full functionality without CLI
79-
monocle = { version = "0.10", default-features = false, features = ["lens-full"] }
79+
monocle = { version = "1.0", default-features = false, features = ["lens-full"] }
8080
```
8181

8282
### Feature Tiers

examples/README.md

Lines changed: 40 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,33 @@ This directory contains examples demonstrating how to use monocle as a library.
44
Examples are organized by the features they require, helping you understand
55
the minimum dependencies needed for different use cases.
66

7+
## Running All Examples
8+
9+
You can run these examples using `cargo run --example <name>`.
10+
11+
```bash
12+
# Standalone utilities
13+
cargo run --release --example time_parsing --features lens-core
14+
cargo run --release --example output_formats --features lens-core
15+
16+
# Database operations
17+
cargo run --release --example database_basics --features database
18+
cargo run --release --example as2rel_queries --features database
19+
20+
# BGP operations
21+
cargo run --release --example country_lookup --features lens-bgpkit
22+
cargo run --release --example rpki_validation --features lens-bgpkit
23+
cargo run --release --example mrt_parsing --features lens-bgpkit
24+
cargo run --release --example search_bgp_messages --features lens-bgpkit
25+
26+
# Full functionality
27+
cargo run --release --example inspect_unified --features lens-full
28+
cargo run --release --example progress_callbacks --features lens-full
29+
30+
# WebSocket Client (requires running server)
31+
# cargo run --example ws_client_all --features cli
32+
```
33+
734
## Feature Tiers
835

936
Monocle uses a layered feature system:
@@ -23,14 +50,6 @@ Monocle uses a layered feature system:
2350

2451
Minimal dependencies - no bgpkit-* crates required.
2552

26-
```bash
27-
# Time parsing and formatting
28-
cargo run --example time_parsing --features lens-core
29-
30-
# Output format utilities
31-
cargo run --example output_formats --features lens-core
32-
```
33-
3453
**Files:**
3554
- `standalone/time_parsing.rs` - Parse timestamps, convert formats
3655
- `standalone/output_formats.rs` - Work with OutputFormat enum
@@ -39,14 +58,6 @@ cargo run --example output_formats --features lens-core
3958

4059
SQLite operations without lens overhead.
4160

42-
```bash
43-
# Basic database operations
44-
cargo run --example database_basics --features database
45-
46-
# AS2Rel relationship queries
47-
cargo run --example as2rel_queries --features database
48-
```
49-
5061
**Files:**
5162
- `database/database_basics.rs` - MonocleDatabase, schema management
5263
- `database/as2rel_queries.rs` - Query AS-level relationships
@@ -55,49 +66,34 @@ cargo run --example as2rel_queries --features database
5566

5667
Full BGP functionality with bgpkit-* integration.
5768

58-
```bash
59-
# Country code lookup
60-
cargo run --example country_lookup --features lens-bgpkit
61-
62-
# RPKI validation
63-
cargo run --example rpki_validation --features lens-bgpkit
64-
65-
# MRT file parsing
66-
cargo run --example mrt_parsing --features lens-bgpkit
67-
68-
# BGP message search
69-
cargo run --example bgp_search --features lens-bgpkit
70-
```
71-
7269
**Files:**
7370
- `bgpkit/country_lookup.rs` - Country code/name lookup
7471
- `bgpkit/rpki_validation.rs` - RPKI ROA validation
7572
- `bgpkit/mrt_parsing.rs` - Parse MRT files with filters
76-
- `bgpkit/bgp_search.rs` - Search BGP messages across files
73+
- `bgpkit/search_bgp_messages.rs` - Search BGP announcement messages (Real-world example)
7774

7875
### Full Examples (`lens-full`)
7976

8077
All lenses including unified inspection.
8178

82-
```bash
83-
# Unified AS/prefix inspection
84-
cargo run --example inspect_unified --features lens-full
85-
86-
# Progress callback patterns
87-
cargo run --example progress_callbacks --features lens-full
88-
```
89-
9079
**Files:**
9180
- `full/inspect_unified.rs` - InspectLens for unified lookups
9281
- `full/progress_callbacks.rs` - Progress tracking for GUI/CLI
9382

83+
### CLI/Server Examples (`cli`)
84+
85+
Examples requiring the full CLI/Server feature set.
86+
87+
**Files:**
88+
- `ws_client_all.rs` - WebSocket client demonstrating all API methods
89+
9490
## Using in Your Project
9591

9692
### Minimal Database Access
9793

9894
```toml
9995
[dependencies]
100-
monocle = { version = "0.9", default-features = false, features = ["database"] }
96+
monocle = { version = "1.0", default-features = false, features = ["database"] }
10197
```
10298

10399
```rust
@@ -114,7 +110,7 @@ let rels = db.as2rel().search_asn(13335)?;
114110

115111
```toml
116112
[dependencies]
117-
monocle = { version = "0.9", default-features = false, features = ["lens-core"] }
113+
monocle = { version = "1.0", default-features = false, features = ["lens-core"] }
118114
```
119115

120116
```rust
@@ -129,7 +125,7 @@ let results = lens.parse(&args)?;
129125

130126
```toml
131127
[dependencies]
132-
monocle = { version = "0.9", default-features = false, features = ["lens-bgpkit"] }
128+
monocle = { version = "1.0", default-features = false, features = ["lens-bgpkit"] }
133129
```
134130

135131
```rust
@@ -151,7 +147,7 @@ println!("{}: {}", result.state, result.reason);
151147

152148
```toml
153149
[dependencies]
154-
monocle = { version = "0.9", default-features = false, features = ["lens-full"] }
150+
monocle = { version = "1.0", default-features = false, features = ["lens-full"] }
155151
```
156152

157153
```rust
@@ -168,20 +164,9 @@ let results = lens.query(&["13335".to_string()], &options)?;
168164
let json = lens.format_json(&results, true);
169165
```
170166

171-
## Running All Examples
172-
173-
```bash
174-
# Run all examples with full features
175-
cargo run --example time_parsing --features cli
176-
cargo run --example database_basics --features cli
177-
cargo run --example country_lookup --features cli
178-
cargo run --example rpki_validation --features cli
179-
cargo run --example inspect_unified --features cli
180-
```
181-
182167
## Notes
183168

184169
- Examples with network operations (RPKI, search) require internet access
185170
- First run may take time to download/bootstrap data
186171
- Use `--release` for better performance with large datasets
187-
- Database operations use WAL mode for concurrent access
172+
- Database operations use WAL mode for concurrent access

0 commit comments

Comments
 (0)