eolify 0.3.0

High-performance line ending normalization for Rust.
Documentation

eolify

High-performance line ending normalization for Rust.

eolify is a lightweight, allocation-conscious library for normalizing end-of-line (EOL) sequences in large text streams or buffers. It’s designed for high-throughput processing pipelines, data ingestion systems, and cross-platform tooling where consistency and efficiency matter.

Features

  • Fast and memory-efficient — optimized for bulk text processing
  • Normalizes EOLs to a consistent format (\r\n for now)
  • Minimal dependencies — ideal for embedding in performance-critical code
  • Handles mixed endings (\n, \r\n, \r) gracefully
  • Built with large-scale text data and streaming I/O in mind

Current status

Currently supports: normalization to CRLF (\r\n) using:

  • a chunk based API*
  • synchronous Read or Write implementations.
  • asynchronous AsyncRead or AsyncWrite implements (both futures_io and tokio are supported).

Planned:

  • LF (\n) normalization

Example

use eolify::{CRLF, Normalize};

let text = "one\nline\r\ntwo\rthree";
let normalized = CRLF::normalize_str(text);
assert_eq!(normalized, "one\r\nline\r\ntwo\r\nthree");

License

MIT or Apache-2.0, at your option.