Releases: uutils/sed
0.1.1
uutils sed 0.1.1 Release:
We are excited to announce the first release of uutils sed 0.1.1 - bringing a comprehensive sed implementation to the uutils ecosystem with robust GNU compatibility and high performance!
Note that this release is not production ready.
Highlights:
-
Aims at a complete sed Implementation
- Full command compilation framework with function pointers for optimal performance
- Comprehensive address compilation supporting all standard sed addressing modes
- All major sed commands implemented:
a,c,i,d,p,s,y,n,N,l,q,Q, and more - Advanced features including in-place editing (
-i), multiple files support, and optimized processing
-
Performance focus
- Optimized text processing with memory-mapped file I/O for large files
- Efficient operations with copy_file_range(2) on Linux
- Smart buffer management and text optimization for
a,c,icommands
-
GNU sed Compatibility
- Comprehensive error reporting with accurate line numbers and context
- Improved GNU compatibility for append, change, and insert commands
- Proper handling of script and file arguments matching GNU sed semantics
- Support for silent comment commands and advanced regex handling
-
Modern Rust Implementation
- Built on Rust 2024 edition with robust safety guarantees
- Integration with uutils ecosystem using uucore, uutests, and uufuzz built for the Rust Coreutils
- Comprehensive test suite ensuring reliability and correctness
-
Cross-Platform Support
- Available for Apple Silicon macOS, Intel macOS, Windows (x64), and Linux (x64, ARM64, MUSL). Port to other OS/arch are welcome.
- Automated release pipeline with cargo-dist for consistent builds
-
Developer Experience
- Integrated fuzzing support for enhanced reliability
- Performance benchmarking infrastructure with CodSpeed integration
- Comprehensive CI/CD pipeline ensuring code quality
Key Contributions:
This release represents a significant achievement in bringing a high-quality, performant sed implementation to the Rust ecosystem. Diomidis Spinellis has been the primary architect behind this implementation, contributing the core sed engine, command compilation framework, address parsing, and most of the advanced functionality that makes this a GNU-compatible sed alternative.
This work has been documented by Diomidis Spinellis in this paper:
https://ieeexplore.ieee.org/document/11119110
Platform Availability:
| Platform | Architecture | Package |
|---|---|---|
| macOS | Apple Silicon | sed-aarch64-apple-darwin.tar.xz |
| macOS | Intel | sed-x86_64-apple-darwin.tar.xz |
| Windows | x64 | sed-x86_64-pc-windows-msvc.zip |
| Linux | ARM64 | sed-aarch64-unknown-linux-gnu.tar.xz |
| Linux | x64 | sed-x86_64-unknown-linux-gnu.tar.xz |
| Linux | x64 MUSL | sed-x86_64-unknown-linux-musl.tar.xz |
Call to Action:
π Sponsor uutils development to accelerate the ecosystem: github.com/sponsors/uutils
π§ Try sed 0.1.1 and report feedback: github.com/uutils/sed/issues
π Contribute to the project and help build the future of cross-platform utilities
Major Implementation Milestones
Core Architecture
- Complete CLI processing and compilation framework by @dspinellis in #40
- Address compilation implementation by @dspinellis in #57
- Command compilation refactoring with function pointers by @dspinellis in #108
- Complete implementation of all commands and optimizations by @dspinellis in #77
Command Implementation
- Comprehensive sed commands implementation by @dspinellis in #64
- GNU compatibility improvements for a, c, i commands by @dspinellis in #109
- Silent comment command implementation by @dspinellis in #120
- Text optimization for a, c, i commands by @dspinellis in #111
Performance & Optimization
- Performance improvements with copy_file_range(2) by @dspinellis in #161
- Error reporting improvements by @dspinellis in #92
- Regular expression handling improvements by @dspinellis in #201
Project Infrastructure
- CI improvements and job optimization by @cakebaker in #14
- Testing framework migration to uutests by @sylvestre in #48
- Fuzzing infrastructure integration by @sylvestre in #72
- Performance monitoring with CodSpeed by @sylvestre in #212
- Release automation with cargo-dist by @sylvestre in #214
Modern Rust Migration
- Rust 2024 edition migration by @cakebaker in #50
- LazyLock migration and once_cell removal by @cakebaker in #51
- IsTerminal migration and atty removal by @cakebaker in #73
- Build system cleanup and optimization by @cakebaker in #75
Version & Release Management
- Version support implementation by @pocopepe in #206
- Direct binary generation by @sylvestre in #208
- Release pipeline improvements by @sylvestre in #220
New Contributors
- @dspinellis - Primary sed implementation architect
- @sylvestre - uutils leadership and infrastructure
- @cakebaker - CI improvements and modern Rust migration
- @renovate[bot] - Automated dependency management
- @oech3 - Build optimizations
- @pocopepe - Version support
Full Changelog: https://github.com/uutils/sed/commits/0.1.1