docs.rs failed to build obsidian-parser-0.3.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
obsidian-parser-0.5.1
obsidian-parser
Blazingly fast Rust library for parsing and analyzing Obsidian vaults.
Features
- ⚡ High Performance: Parses 1000+ notes in under 3ms
- 🧠 Knowledge Graphs: Built-in integration with
petgraphfor advanced analysis - 🧩 Flexible API: Supports both in-memory and on-disk note representations
- 🔍 Frontmatter Parsing: Extract YAML properties with
serdecompatibility - 🌐 Link Analysis: Identify connections between notes
Quick Start
Add to Cargo.toml:
[]
= "0.3"
Basic Usage
- Parsing
use *;
use Deserialize;
// Parse single file with `HashMap`
let note_hashmap = from_file_default.unwrap;
println!;
println!;
// Parse single file with custom struct
let note_with_serde: = from_file.unwrap;
- Vault
use *;
// Load entire vault
let vault = open_default.unwrap;
// Check for duplicate note names
if !vault.check_unique_note_name
// Access parsed files
for file in vault.files
Graph Analysis (requires petgraph feature)
Enable in Cargo.toml:
= { = "0.3", = ["petgraph"] }
# obsidian-parser = { version = "0.3", features = ["petgraph", "rayon"] } is fast
Then:
use *;
use ;
let vault = open_default.unwrap;
let graph = vault.get_digraph.unwrap;
// Export to Graphviz format
println!;
// Find most connected note
let most_connected = graph.node_indices
.max_by_key
.unwrap;
println!;
Example: Analyze Knowledge Connectivity
Included example analyzer calculates connected components in your Obsidian vault's knowledge graph:
Limitations
⚠️ Critical Requirement for Graph Analysis:
All note filenames must be unique. Use vault.has_unique_filenames() to verify before calling get_digraph() or get_ungraph().
Why? Notes are identified by filename in graph operations. Duplicates will cause incorrect graph construction.
Performance
My PC AMD Ryzen 5 3600X with NVMe SSD
| Operation | Time |
|---|---|
| Vault initialization | 741.92 µs |
| Graph construction | 1.67 ms |
| Peak memory usage | 900 KiB |
License
MIT © CryptoGladi