@@ -4,6 +4,33 @@ This directory contains examples demonstrating how to use monocle as a library.
44Examples are organized by the features they require, helping you understand
55the 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
936Monocle uses a layered feature system:
@@ -23,14 +50,6 @@ Monocle uses a layered feature system:
2350
2451Minimal 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
4059SQLite 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
5667Full 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
8077All 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)?;
168164let 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