Open-source project
HT524/500LineorLess_CN avatar
HT524/500LineorLess_CN

500LineorLess_CN: A Community Chinese Translation of the 500 Lines or Less Book

500 line or less 中文翻译计划。

4,430 stars869 forksJupyter NotebookNOASSERTION

At a glance

What is it?
500LineorLess_CN is a GitHub repository containing Chinese translations of the chapters from the 500 Lines or Less book, a collection of essays where experienced software developers build real working systems in under 500 lines of code. It provides an online reading site and a translation glossary for consistency.
Who is it for?
500LineorLess_CN is appropriate for a Chinese-speaking developer who wants to read the 500 Lines or Less chapters in Chinese without consulting an English text. It is not appropriate as a primary learning resource for someone who wants runnable code alongside the text: the chapters are translations, not interactive notebooks, and several chapters link out to external translations rather than hosting translated text directly in this repository.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 175 days ago.
What is it written in?
Mainly Jupyter Notebook, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What 500 Lines or Less Is and Why This Repository Exists

500 Lines or Less is a book published by the Architecture of Open Source Applications project. Each chapter is written by an experienced practitioner who builds a real, working system in under 500 lines of code. The topics span systems programming, data structures, compilers, databases, web applications, and scientific computing. Examples include a web crawler using asyncio coroutines, an in-memory graph database, a continuous integration system, a 3D modeller, and a static analysis tool.

The original book is in English, hosted at aosabook.org and in the aosabook/500lines repository on GitHub. Chinese-speaking developers who wanted to read these essays in their native language had no official translation, which created a gap that the 500LineorLess_CN community project addresses.

The repository collects Chinese translations of these chapters, some written by contributors within this project and others pointing to translations published elsewhere on the Chinese internet. An online reading version is available at https://500lines-cn.skhe.net/.

How the Repository Is Organized

Each translated chapter has its own subdirectory. The directory names use a mix of Chinese and English. For example, the chapter on a web crawler with asyncio coroutines lives in a directory titled in Chinese as "高效爬虫与协程 A Web Crawler With asyncio Coroutines". The main translation file inside each directory is a Markdown file. Some directories also contain supporting files like notebooks or code.

The top-level README contains a correspondence table mapping each English chapter title and author to the Chinese title and translator name. Not every chapter is translated within this repository. Several rows in the table point to external translations on CSDN, Zhihu, or other Chinese developer sites rather than to files in this repository. This means the translation coverage is more complete than what you can read locally, but less consistent: some translations are hosted and versioned here, and others are external links that could disappear.

The repository also contains a terminology glossary (术语库) in the 术语库/ directory. The README notes that the glossary was built from two sources: the computer terminology database from iicm.org.tw and English-to-Chinese translation glossaries from proz.com. The README states that this glossary can be imported directly into Google Translate Toolkit to support consistent terminology during translation work.

Reading the Translations: Online Site and Local Clone

The primary way to read the translations is through the online site at https://500lines-cn.skhe.net/, which renders all completed chapters together. Readers who prefer to work offline can clone the repository and open the Markdown files directly.

The README does not provide a setup script or a site-generation command. The content is plain Markdown and does not require a build step to read. The repository includes a .gitignore and no build tooling for generating the site locally; the online site at 500lines-cn.skhe.net is the maintained reading interface.

The chapter directories are self-contained. A reader who wants only one chapter, such as the asyncio web crawler translation in 高效爬虫与协程 A Web Crawler With asyncio Coroutines/, can read that directory's Markdown file without navigating the rest of the repository.

Which Chapters Are Translated and What Is Missing

The README's recognition table lists 19 chapters. The chapters with completed translations include: a continuous integration system, consensus-based distributed systems, a web crawler with asyncio coroutines, the Dagoba in-memory graph database, the DBDB key-value database, a flow shop scheduler, an archaeology-inspired database, a 3D modeller, a simple object model, optical character recognition, a pedometer with Python, a rejection sampler, a web spreadsheet, static analysis, a simple web server, and a dynamic build system.

Four chapters from the original 500 Lines book are not in this translation table: the Blockcode visual programming toolkit entry links to an existing external Chinese translation rather than hosting one. A Python interpreter written in Python links to a translation on linux.cn. The template engine links to a jianshu.com article. The pedometer links to a Zhihu article. These are external dependencies, and the repository has no control over their availability.

The 500 Lines or Less book itself contains 22 chapters in the English edition. This repository covers most but not all of them. Some chapter directories carry multiple translator names, indicating chapters that were translated collaboratively or were revised after an initial submission. The recognition table also shows that several chapters were translated with assistance from a contributor identified only as Claude, appearing alongside named human contributors.

Alternative: Reading the English Original and License Status

The aosabook/500lines repository contains the original English text and the source code for each chapter. For developers who read English, the original at aosabook.org offers a rendered reading experience and is the authoritative source for the code examples. The primary difference in approach is language: this repository exists to serve Chinese-speaking readers who prefer not to read technical essays in English.

The repository's license metadata is listed as NOASSERTION, which means no recognized open source license identifier was found in the repository. The README does not contain a license statement. For a translation project, the licensing situation is also affected by the original book's license, which is documented in the aosabook/500lines repository.

The last push was on 2026-04-09. The README and translation table have been updated over several years by multiple contributors. The top-level directory layout shows that the repository stores each translated chapter in its own directory using a naming convention that pairs the Chinese chapter title with the original English title, making it possible to match a chapter to the corresponding English original by reading the directory name. The Flow Shop Scheduler chapter appears in two separate directories: one named "Flow Shop调度问题 A Flow Shop Scheduler" and another named "流水车间调度器 A Flow Shop Scheduler", suggesting that the chapter received two separate translation efforts at different points in the project's history. This duplication is visible in the repository's directory listing and is documented in the README's recognition table, which lists both translations with different translator credits.

Editorial conclusion

500LineorLess_CN is appropriate for a Chinese-speaking developer who wants to read the 500 Lines or Less chapters in Chinese without consulting an English text. It is not appropriate as a primary learning resource for someone who wants runnable code alongside the text: the chapters are translations, not interactive notebooks, and several chapters link out to external translations rather than hosting translated text directly in this repository. Readers who prefer English or who want the original code can use the aosabook/500lines repository and the original site at aosabook.org. The license field for this repository is NOASSERTION, meaning no recognized open source license is identified in the repository metadata. The last push was on 2026-04-09.

Frequently asked questions

Where can I read the 500LineorLess_CN translations?

The online reading site is at https://500lines-cn.skhe.net/. All completed chapters are rendered there. You can also clone the repository and open the Markdown files in any text editor or Markdown viewer.

Are all 500 Lines or Less chapters translated in this repository?

No. The README's recognition table covers 19 chapters. Some entries link to external translations on Chinese websites rather than hosting a translation file in this repository. Several chapters from the original English book do not appear in the table at all.

What is the 500 Lines or Less project?

500 Lines or Less is a book from the Architecture of Open Source Applications project where each chapter is a complete, working software system built by an experienced practitioner in under 500 lines of code. Chapters cover a wide range of topics including databases, web crawlers, static analysis, build systems, and 3D modelling. The English original is at aosabook.org and in the aosabook/500lines repository.

Official sources

  1. HT524/500LineorLess_CN on GitHub
  2. Issues
  3. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/ht524-500lineorless-cn.svg)](https://hysenlabs.com/projects/ht524-500lineorless-cn)