v1.0.0
This is a major release with significant architectural changes, new commands, and breaking changes.
Breaking Changes
- Command Removals & Renames:
- Removed
brokercommand (usesearch --broker-filesinstead). - Removed
radarcommand (access Cloudflare Radar directly via their API). - Removed
rpki listandrpki summarycommands (userpki roasinstead). - Renamed
rpki checktorpki validate. - Renamed
whoistoinspect(unified AS/prefix lookup command).
- Removed
- Library API:
- All public functions are now accessed through lens structs (e.g.,
InspectLens,RpkiLens).
- All public functions are now accessed through lens structs (e.g.,
- Output:
- Default output format changed from markdown to table (pretty borders).
New Features
New Commands
monocle inspect: Unified AS/prefix information lookup.- Replaces
whoisandpfx2as. - Auto-detects query type (ASN, prefix, IP address, or name).
- Combines data from ASInfo, AS2Rel, RPKI, and Pfx2as.
- Replaces
monocle server: WebSocket API Server.- JSON-RPC style protocol with streaming support.
- Endpoints for all major monocle operations.
monocle config: Consolidated configuration and database management.- Manage data sources, refresh data, and backup database.
monocle as2rel: AS Relationship lookup.- Query relationships, peers, and upstreams.
ASPA Support
- Enrichment:
- Enriched customer/provider names and countries via SQL JOINs.
- Unified provider structure in JSON output (
providersarray with{asn, name}objects).
Core Enhancements
- Unified Output Format: Global
--formatoption for all commands (table,markdown,json,json-pretty,json-line,psv). - SQLite Integration:
- ASInfo: Unified AS information stored in SQLite (replaces as2org).
- Pfx2as: Prefix-to-ASN mappings cached in SQLite for fast range lookups.
- RPKI: ROAs and ASPAs cached in SQLite.
- Progress Tracking: Library support for callback-based progress reporting in
ParseLensandSearchLens. - Feature Flags: Reorganized into tiers (
database,lens-core,lens-bgpkit,lens-full,display,cli).
Improvements
monocle inspect:- Progress messages during data loading.
- Improved output formatting with section headers.
- Performance optimization (lazy loading of data sources).
- General:
- Name truncation: Long names in tables are truncated to 20 chars (disable with
--show-full-name). - Database performance: Optimized batch insert operations.
- Broken pipe handling: Graceful exit when piping output (e.g., to
head).
- Name truncation: Long names in tables are truncated to 20 chars (disable with
Bug Fixes
- Handle SIGPIPE gracefully to prevent panics when piping output.
Documentation
- Added WebSocket server documentation.
- Updated all documentation references and examples.
Code Improvements
- Lens-based architecture: Centralized logic in
src/lens/. - Refactoring: Improved CLI command organization.
- Examples: Added comprehensive examples for all feature tiers.
Dependencies
- Added
bgpkit-commons(asinfo, rpki, countries). - Added server dependencies (
axum,tokio, etc.). - Added
libc(used for SIGPIPE handling on Unix systems). - Removed
rpkicrate.