backwards-line-reader
v1.0.1
Published
Memory-efficient reverse line-by-line file reader supporting promises and async iterators.
Maintainers
Readme
backwards-line-reader
Why use backwards-line-reader? Reading large logs or historical audit files from start to finish just to read the latest lines is highly inefficient. It wastes CPU cycles, reads unnecessary blocks of data, and bloats system memory.
A memory-efficient backwards file reader. It reads file buffers backwards from the end of the file, yielding lines line-by-line in reverse order. Perfect for log parsing, debugging viewers, and tail operations.
⚡ Features
- Memory-efficient backward file reading using chunk buffers
- Exposes simple AsyncIterator (can use for-await-of loop)
- Zero dependencies
- Supports custom chunk sizes and encoding styles
📦 Installation
npm i backwards-line-reader🚀 Usage
import { readLinesReverse } from 'backwards-line-reader';
// Read lines in reverse order (newest to oldest log entries)
const reader = readLinesReverse('./logs/error.log');
for await (const line of reader) {
console.log('Log Entry:', line);
if (line.includes('FATAL')) break; // Stop early
}⚙️ API Reference
readLinesReverse(filePath, options?)
filePath:string- Absolute or relative path to the target file.options:{ chunkSize?: number, encoding?: string }(Default: 4096 bytes, 'utf8')- Returns an
AsyncIterableIterator<string>.
📺 Demonstration

📄 License
MIT License.
