β‘ Blazing-fast Go Linter & Formatter ββ 10-100x faster than traditional tools
woofmt is an extremely fast Go code quality tool written in Rust, bringing real-time code checking to the vibe coding world. Designed from scratch for extreme performance.
π δΈζζζ‘£
| Scenario | woofmt | golangci-lint | staticcheck | Speedup |
|---|---|---|---|---|
| Cold Start | 12ms | ~100ms | ~50ms | 5-10x |
| Hot Run (single file) | 2ms | ~300ms | ~100ms | 50-100x |
| 100 files batch | 24ms | ~3000ms | ~800ms | 30-100x |
| 1000 files project | 150ms | ~20s | ~5s | 30x |
| 5000 files large project | 600ms | ~60s | ~15s | 25x |
Test environment: 12-core CPU, SSD
π¦ Native Rust Performance
ββ Zero-cost abstractions
ββ No GC pauses
ββ Extreme memory control
β‘ Smart Cache Architecture
ββ Parser pooling (99% reuse)
ββ AST LRU cache (1000 slots)
ββ Hot run 2ms response
π Parallel Processing
ββ Data-level parallelism (Rayon)
ββ 12-core 3.55x speedup
ββ 256-core hierarchical scheduling
πΎ Memory Optimization
ββ Arena allocator
ββ Zero-copy I/O (mmap)
ββ 60% peak memory reduction
| Feature | Description |
|---|---|
| π Extremely Fast | Cold start 12ms, hot run 2ms |
| π¦ All-in-One | Lint + Format + Simplify + Imports |
| π― Precise | Tree-sitter AST, zero false positives |
| π Incremental | Only check changed files |
| π LSP Support | Real-time diagnostics |
| β‘ Parallel | Full utilization of multi-core |
| π§© Plugin System | Custom rules supported |
| π Multiple Reports | JSON/SARIF/GitHub Actions |
cargo install woofmtcurl -fsSL https://raw.githubusercontent.com/GWinfinity/woofmt/main/install.sh | bash# Linux/macOS/Windows
wget https://github.com/GWinfinity/woofmt/releases/latest/download/woofmt-$(uname -s)-$(uname -m)
chmod +x woofmt-*
sudo mv woofmt-* /usr/local/bin/woofmt# Check current directory
woofmt check
# Check specific file
woofmt check main.go
# Check and auto-fix
woofmt check --fix
# Check with JSON output
woofmt check --format json# Format current directory
woofmt fmt
# Format with write (in-place)
woofmt fmt --write
# Check if formatted
woofmt fmt --check# Run all rules
woofmt lint
# Run specific rules
woofmt lint --rules "unused,shadow,error"
# Auto-fix issues
woofmt lint --fixwoofmt check [OPTIONS] [PATHS...]
Options:
-j, --threads <N> Parallel threads (default: CPU cores)
--fix Auto-fix issues
--cache Enable caching
--no-cache Disable caching
--format <FORMAT> Output format: pretty/json/sarif
-o, --output <FILE> Output file
-v, --verbose Verbose output
-q, --quiet Quiet mode
-h, --help Help# .woofmt.toml
[format]
tab_width = 4
use_tabs = false
max_line_length = 100
[lint]
enabled_rules = ["all"]
disabled_rules = ["ST1000"]
severity = "warning"
[cache]
enabled = true
directory = ".woofmt_cache"
max_size = "1GB"
[parallel]
threads = 12βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β woofmt Architecture β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Parser β β Analyzer β β Reporter β β
β β(tree-sitterβββββΆβ Engine βββββΆβ (Multi) β β
β β pool) β β β β β β
β ββββββββ¬βββββββ βββββββββββββββ βββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Parallel File Processor β β
β β (Rayon) β β
β β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β β
β β β File 1 β β File 2 β β File 3 β β File N β β β
β β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Smart Cache Layer β β
β β ββ Parser Pool (99% reuse) β β
β β ββ AST LRU Cache (1000 slots) β β
β β ββ File Hash Cache β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
$ hyperfine --warmup 3 'woofmt check' 'golangci-lint run'
Benchmark 1: woofmt check
Time (mean Β± Ο): 12.4 ms Β± 1.2 ms
Range (min β¦ max): 10.8 ms β¦ 15.1 ms
Benchmark 2: golangci-lint run
Time (mean Β± Ο): 2.341 s Β± 0.123 s
Range (min β¦ max): 2.156 s β¦ 2.567 s
Summary: woofmt is 188.8x faster| Tool | Cold Start Memory | Peak Memory |
|---|---|---|
| woofmt | 45MB | 180MB |
| golangci-lint | 120MB | 450MB |
| staticcheck | 80MB | 320MB |
Contributions welcome! Please see CONTRIBUTING.md.
git clone https://github.com/GWinfinity/woofmt.git
cd woofmt
cargo test
cargo benchApache License 2.0 Β© GWinfinity
Made with β€οΈ and π¦ Rust
"woofmt brings real-time code checking to vibe coding."