# Rust API Reference
This section provides comprehensive documentation for all Rust APIs in RustKmer.
## Core Components
### KmerCounter
The main k-mer counting interface with support for:
- Exact k-mer counting
- Canonical k-mer processing
- Memory-efficient counting algorithms
- Large file processing capabilities
### Database Operations
Efficient database functionality for:
- Binary database storage (.rkdb format)
- High-speed querying operations
- Memory-mapped file access
- Fuzzy search capabilities
### Fuzzy Query
Advanced query functionality supporting:
- Pattern matching with wildcards
- Hamming distance calculations
- Substitution queries
- Performance-optimized search algorithms
### Command Line Interface
Complete CLI tool supporting all library features:
- Batch processing operations
- Multiple output formats
- Progress reporting and logging
- Cross-platform compatibility
## Performance Characteristics
RustKmer delivers world-class performance:
| Counting | ~1M k-mers/sec | <100MB for 1GB files |
| Querying | ~4M queries/sec | <2MB additional overhead |
| Database creation | Stream processing | Linear memory usage |
## Usage Examples
```rust
use rustkmer::KmerCounter;
// Create a new counter
let mut counter = KmerCounter::new(21, true);
// Count k-mers from a file
counter.add_from_fasta("genome.fa.gz")?;
// Get statistics
let total = counter.get_stats().total_kmers);
let unique = counter.get_unique_count();
println!("Total k-mers: {}, Unique k-mers: {}", total, unique);
```
For detailed API documentation, see the specific modules listed in the navigation.