Releases: kolkov/uawk
v0.2.3
Changed
- Updated coregex to v0.12.8 (from v0.10.6) — 22 releases with major improvements
- Updated golang.org/x/sys to v0.42.0 (from v0.40.0)
- Fixed staticcheck QF1012: replaced
WriteString(Sprintf)withFprintf
Key coregex improvements (v0.10.7 → v0.12.8)
| Area | Highlight |
|---|---|
| Anchored patterns | FindAll 600x faster |
| UseAnchoredLiteral | 32-133x speedup |
| Prefix fast path | 319-552x speedup |
| UseMultilineReverseSuffix | 3.5-5.7x speedup |
| Cross-product literals | 14x speedup (regexdna) |
| PikeVM | 1.68x faster than stdlib, sparse-dispatch for dot patterns |
| New APIs | Streaming ReplaceAll, DFA-first FindSubmatchAt |
| Bug fixes | Non-greedy quantifiers, word boundary, BoundedBacktracker spans |
Full Changelog: v0.2.2...v0.2.3
v0.2.2
Changed
- Updated coregex to v0.10.6
- v0.10.4: Thread-safety fix with
sync.Poolfor concurrent Regexp usage - v0.10.5: CompositeSearcher backtracking fix for overlapping patterns (
\w+[0-9]+) - v0.10.6: CompositeSequenceDFA (25x faster overlapping char classes, 300 MB/s)
- v0.10.6:
FindAllIndexCompactAPI for near-zero allocations
- v0.10.4: Thread-safety fix with
Full Changelog: v0.2.1...v0.2.2
uawk v0.2.2 (2026-01-14T11:06:49Z)
High-performance AWK interpreter for Go!
8/8 benchmarks faster than GoAWK. Powered by coregex (3-3000x faster regex).
Changelog
🎨 Other
Installation:
# Using go install (recommended):
go install github.com/kolkov/uawk/cmd/uawk@v0.2.2
# Or download binary for your platform aboveQuick Start:
# Print first column:
uawk '{ print $1 }' file.txt
# Sum numbers:
uawk '{ sum += $1 } END { print sum }' numbers.txt
# Filter lines:
uawk '/pattern/ { print }' file.txtDocumentation: https://github.com/kolkov/uawk#readme
Report Issues: https://github.com/kolkov/uawk/issues
v0.2.1
Performance
- Lazy ENVIRON loading for 40-60% faster VM creation
os.Environ()syscall deferred until first ENVIRON access- Most AWK programs don't use ENVIRON, now they pay zero overhead
Benchmark Results
| Metric | Before | After | Improvement |
|---|---|---|---|
| VM creation (no ENVIRON) | 87μs | 38μs | -56% |
| Memory allocation | 63KB | 36KB | -43% |
| Allocations | 150 | 25 | -83% |
Real-world benchmarks (awkbench 1MB):
- wordcount: -17%
- groupby: -21%
- filter: -25%
Installation
go install github.com/kolkov/uawk/cmd/uawk@v0.2.1Full Changelog: v0.2.0...v0.2.1
uawk v0.2.1 (2026-01-12T20:08:10Z)
High-performance AWK interpreter for Go!
8/8 benchmarks faster than GoAWK. Powered by coregex (3-3000x faster regex).
Changelog
⚡ Performance
Installation:
# Using go install (recommended):
go install github.com/kolkov/uawk/cmd/uawk@v0.2.1
# Or download binary for your platform aboveQuick Start:
# Print first column:
uawk '{ print $1 }' file.txt
# Sum numbers:
uawk '{ sum += $1 } END { print sum }' numbers.txt
# Filter lines:
uawk '/pattern/ { print }' file.txtDocumentation: https://github.com/kolkov/uawk#readme
Report Issues: https://github.com/kolkov/uawk/issues
v0.2.0
uawk v0.2.0 - Parallel Execution
High-performance AWK interpreter for Go!
All 16/16 benchmarks faster than GoAWK. Powered by coregex (3-3000x faster regex).
What's New
Added
- Parallel execution with
-j Nflag for concurrent multi-file processing- Automatic detection of parallel-safe programs
- Worker pool processes files concurrently with output ordering preserved
-dpflag to check if program can be parallelized
Performance
- Specialized global array opcodes eliminate scope switch overhead
- wordcount: 281ms → 271ms (7% improvement, now beats GoAWK)
- email benchmark: 181ms → 32ms (5.7x faster, was broken before)
Fixed
- CompositeSearcher backtracking bug for overlapping patterns
- Patterns like
[a-z.]+\.comnow match correctly
- Patterns like
Changed
- Updated coregex to v0.10.3
Installation:
# Using go install (recommended):
go install github.com/kolkov/uawk/cmd/uawk@v0.2.0
# Or download binary for your platform aboveQuick Start:
# Print first column:
uawk '{ print $1 }' file.txt
# Parallel processing (4 workers):
uawk -j 4 '{ sum += $1 } END { print sum }' *.log
# Performance mode:
uawk --no-posix '/pattern/ { print }' file.txtFull Changelog: v0.1.6...v0.2.0
v0.1.6
uawk v0.1.6 - VM Performance V2
High-performance AWK interpreter for Go!
15/16 benchmarks faster than GoAWK. Powered by coregex (3-3000x faster regex).
What's New
Added
--posix/--no-posixCLI flags for regex mode selectionPOSIXRegexoption inuawk.Configfor library usageRegexConfigandVMConfigfor fine-grained control
Performance
- VM Performance V2: Type specialization, opcode fusion, stack optimization
- Static type inference for numeric operations
- Peephole optimizer for instruction fusion
- Optimized stack operations (PeekPop, ReplaceTop)
--no-posixmode disables leftmost-longest matching for faster regex- Up to 12% improvement on some patterns in fast mode
Installation:
# Using go install (recommended):
go install github.com/kolkov/uawk/cmd/uawk@v0.1.6
# Or download binary for your platform aboveQuick Start:
# Print first column:
uawk '{ print $1 }' file.txt
# Sum numbers:
uawk '{ sum += $1 } END { print sum }' numbers.txt
# Performance mode (faster regex):
uawk --no-posix '/pattern/ { print }' file.txtFull Changelog: v0.1.5...v0.1.6
v0.1.5
uawk v0.1.5 (2026-01-06T22:59:27Z)
High-performance AWK interpreter for Go!
8/8 benchmarks faster than GoAWK. Powered by coregex (3-3000x faster regex).
Changelog
🎨 Other
Installation:
# Using go install (recommended):
go install github.com/kolkov/uawk/cmd/uawk@v0.1.5
# Or download binary for your platform aboveQuick Start:
# Print first column:
uawk '{ print $1 }' file.txt
# Sum numbers:
uawk '{ sum += $1 } END { print sum }' numbers.txt
# Filter lines:
uawk '/pattern/ { print }' file.txtDocumentation: https://github.com/kolkov/uawk#readme
Report Issues: https://github.com/kolkov/uawk/issues
v0.1.4
uawk v0.1.4 (2026-01-06T21:11:29Z)
High-performance AWK interpreter for Go!
8/8 benchmarks faster than GoAWK. Powered by coregex (3-3000x faster regex).
Changelog
🎨 Other
Installation:
# Using go install (recommended):
go install github.com/kolkov/uawk/cmd/uawk@v0.1.4
# Or download binary for your platform aboveQuick Start:
# Print first column:
uawk '{ print $1 }' file.txt
# Sum numbers:
uawk '{ sum += $1 } END { print sum }' numbers.txt
# Filter lines:
uawk '/pattern/ { print }' file.txtDocumentation: https://github.com/kolkov/uawk#readme
Report Issues: https://github.com/kolkov/uawk/issues
v0.1.3
uawk v0.1.3 (2026-01-06T11:12:54Z)
High-performance AWK interpreter for Go!
8/8 benchmarks faster than GoAWK. Powered by coregex (3-3000x faster regex).
Changelog
🎨 Other
Installation:
# Using go install (recommended):
go install github.com/kolkov/uawk/cmd/uawk@v0.1.3
# Or download binary for your platform aboveQuick Start:
# Print first column:
uawk '{ print $1 }' file.txt
# Sum numbers:
uawk '{ sum += $1 } END { print sum }' numbers.txt
# Filter lines:
uawk '/pattern/ { print }' file.txtDocumentation: https://github.com/kolkov/uawk#readme
Report Issues: https://github.com/kolkov/uawk/issues
v0.1.2
uawk v0.1.2 (2026-01-05T01:16:32Z)
High-performance AWK interpreter for Go!
8/8 benchmarks faster than GoAWK. Powered by coregex (3-3000x faster regex).
Changelog
🎨 Other
Installation:
# Using go install (recommended):
go install github.com/kolkov/uawk/cmd/uawk@v0.1.2
# Or download binary for your platform aboveQuick Start:
# Print first column:
uawk '{ print $1 }' file.txt
# Sum numbers:
uawk '{ sum += $1 } END { print sum }' numbers.txt
# Filter lines:
uawk '/pattern/ { print }' file.txtDocumentation: https://github.com/kolkov/uawk#readme
Report Issues: https://github.com/kolkov/uawk/issues
v0.1.1
uawk v0.1.1 (2026-01-04T23:10:20Z)
High-performance AWK interpreter for Go!
8/8 benchmarks faster than GoAWK. Powered by coregex (3-3000x faster regex).
Changelog
🎨 Other
Installation:
# Using go install (recommended):
go install github.com/kolkov/uawk/cmd/uawk@v0.1.1
# Or download binary for your platform aboveQuick Start:
# Print first column:
uawk '{ print $1 }' file.txt
# Sum numbers:
uawk '{ sum += $1 } END { print sum }' numbers.txt
# Filter lines:
uawk '/pattern/ { print }' file.txtDocumentation: https://github.com/kolkov/uawk#readme
Report Issues: https://github.com/kolkov/uawk/issues