Fcat
A 3x faster implementation of cat, using splice
Install / Use
/learn @mre/FcatREADME
😼 fcat
fcat, short for fastcat, is a cat implementation in Rust using Linux's splice syscall.
With that little trick, it's more than three times as fast as the system cat in our benchmarks.
Read the announcement here.
:warning: This project is currently broken on newer Linux versions (5.9+) because of some changes
concerning the splice system call. (See here and here.) This can't be fixed unless changes to the kernel get made.
Performance
cat myfile | pv -r > /dev/null
[1.90GiB/s]
fcat myfile | pv -r > /dev/null
[5.90GiB/s]
Installation
Note: Only works on Linux.
(But you can send me a pull request for other operating systems.)
cargo install fcat
Usage
fcat file1 file2 file3
Project goals
- Be the fastest cat in town.
- Be a drop-in replacement for (POSIX) cat.
Non-goals
- Provide any additional functionality other than what
catprovides.
If you're looking for a more beautiful cat, check out bat.
Known issues
If you run fcat /dev/zero >> myfile, it will fail with exit code EINVAL because, according to the splice manpage: "The target file is opened in append mode."
Trivia
- You probably won't ever need this, but it's a fun little experiment.
Still, I wonder why this is not part of e.g. GNU cat... - What I like the most about the project is the logo.
License
fcat is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Related Skills
node-connect
346.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
