Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Your Own Tools

CI Docs License Rust Go

English | 简体中文

Rebuild real CLI tools in Rust and Go to learn file I/O, compression, TUI design, cross-platform behavior, and the trade-offs between two systems languages.

Live Site · Getting Started · Architecture · Rust vs Go Comparison

Included projects

Tool Languages What it teaches Status
dos2unix Rust streaming file I/O, buffer boundaries, newline handling Stable
gzip Rust + Go compression pipelines, CLI design, idiomatic error handling Stable
htop Rust + Go TUI architecture, process metrics, cross-platform system APIs Stable

Why this repo is useful

  • One idea, two implementations: compare Rust and Go on the same problem space.
  • Progressive complexity: start with a small streaming tool and end with a cross-platform terminal UI.
  • Practical engineering: shared build commands, CI, release automation, and a documentation site are part of the learning surface.

Quick start

git clone https://github.com/LessUp/build-your-own-tools.git
cd build-your-own-tools

make build-all
make test-all

# Example: convert CRLF input from stdin
printf 'hello\r\nworld\r\n' | ./target/release/dos2unix-rust

Development workflow

make lint-all
make test-all
npm run docs:check
npm run docs:build

Documentation map

Document Purpose
Getting Started set up the toolchains and run the project
Architecture understand repo structure and system design
Comparison compare Rust and Go design choices
CHANGELOG.md project release history

License

Licensed under either of:

About

用 Rust/Go 重写 CLI 工具的学习仓库: dos2unix, gzip, htop

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages