Skip to content

Releases: uutils/sed

0.1.1

17 Dec 19:25

Choose a tag to compare

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, i commands
  • 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

Performance & Optimization

Project Infrastructure

Modern Rust Migration

Version & Release Management

New Contributors

Full Changelog: https://github.com/uutils/sed/commits/0.1.1