# ProgrammingRust: LaTeX sources for a translated edition of the Rust book

> MeouSker77/ProgrammingRust is a personal LaTeX translation of the second edition of Programming Rust, with a VitePress reading site and a daily PDF build. It is a reading project, not a Rust library, and the translation leaves real gaps in coverage and formatting.

**MeouSker77/ProgrammingRust** — 本书为《Programming Rust - Fast, Safe Systems Development》第2版的个人中文翻译，仅供学习和交流使用，如有侵权请联系作者删除

- Repository: https://github.com/MeouSker77/ProgrammingRust
- Stars: 719 · Forks: 87
- Language: TeX
- License: not declared
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/meousker77-programmingrust

## A book project where the artifact is text, not code

MeouSker77/ProgrammingRust describes itself in one line: a personal Chinese translation of the second edition of Programming Rust, the book by Jim Blandy and the Ferrous team, offered for study and discussion. That framing sets expectations before you read a single line of source. The repository is TeX, the top level holds a src directory of chapter files, a fonts directory, an img directory, a scripts directory, and a .vitepress directory, and the topics are latex and rust. There is no Rust crate here, no library you could add as a dependency, and no API to call. The deliverable is a book.

That matters for adoption, because a documentation repository is judged on accuracy and coverage while a translation repository is judged on whether the words are right and whether the typesetting survives. The README points readers to the English original for purchase and to the project pages for the translation itself, which is a reasonable division of labour. The stated aim, learning and discussion, is modest and the project does not present itself as a publisher backed edition.

## The untranslated chapter and the formats nobody reproduced

Two gaps are stated plainly in the README and they shape what you get. First, chapter 17 is not translated. The note says the chapter was skipped and thanks a contributor for providing a LaTeX version of it, so a reader does get some form of chapter 17, but it comes from a third party rather than the main translation effort. The release tags reinforce the shape of the work: v0.20 is described as having completed the first 21 chapters with chapter 17 excepted, and v0.19 the first 20 chapters with the same exception.

Second, formatting was deliberately not reproduced. The README says only the content of the original was kept, and that colour schemes, heading formats, and header and footer formats all differ from the original edition. Code listings in the original use colour to mark syntax, and that signal is gone here. A reader learning Rust from listings will have to notice structure by eye instead of by hue, which is slower than it sounds when the material is dense. The font directory exists in the repository, but the README warns that some fonts are not present on every system and are not convenient to redistribute, so the GitHub build ships without a specified font.

## Nightly Build is where the PDF actually lives

The release list and the download section point at the same tag, and the tag name matters. The newest listed release is v0.99 (Nightly Build) from 2022-09-08, and the README says the PDF can be found under the Nightly Build tag. Two earlier tags, v0.20 from 2022-04-16 and v0.19 from 2022-01-02, are named after chapter progress, which makes them useful as frozen snapshots of the translation. The version numbers are not semantic releases in any conventional sense.

The nightly artifact is produced by a GitHub Action that runs every day, compiles the PDF from the latest code, and uploads it to the release tagged Nightly Build. The practical consequence is that a reader who wants a PDF does not need a local toolchain at all, while a reader who wants to be sure the PDF matches a particular commit still has to look for a dated snapshot. The repository is not archived, and the last push was on 2026-08-19, so the daily build pipeline is the part of the project most likely to still be live even though the newest tagged release in the list carries a 2022 date.

## Compiling the PDF yourself with tectonic

The README documents a local build path for readers who want to change the output. It lists four prerequisites: install tectonic, install python, install Pygments, and remove an active includeonly line from src/main.tex before compiling. The includeonly detail is easy to miss and easy to get wrong, since a commented line starting with a percent sign is harmless while an uncommented one restricts the whole document to a single chapter. The Pygments step is needed because the LaTeX sources call out to the syntax highlighter, and the README insists the pygmentize executable must be on PATH.

The compile itself is two lines, run from the src directory:

```bash
    cd src
    tectonic -Z shell-escape main.tex
```

The output is main.pdf in that directory. The shell escape flag is required because the Pygments highlighting is executed during the build rather than precomputed. Two failure notes come with it: if tectonic is not on PATH, substitute its full path, and if every step is followed and the build still fails, the README invites an issue. That last point is the honest signal about where this project stands as a toolchain.

## The reading site is pandoc in front of VitePress

The online version is a static site, and the pipeline is described plainly: the site is built by VitePress from src/*.tex, and pandoc converts the LaTeX into Markdown before VitePress generates the static site. Chapter updates trigger a rebuild through GitHub Actions and are then published automatically, so the site tracks the repository rather than a frozen release.

Locally you need node, npm, and pandoc. The npm scripts in package.json map to three commands, and the build and dev scripts both run the Markdown generation script first, with the shell script at scripts/build-md.sh, before calling VitePress.

```bash
    npm install
    npm run build
    npm run preview
```

The build writes the static site into dist. The preview step exists because of a VitePress base setting of /ProgrammingRust/, which is what the deployed GitHub Pages path uses. The README warns against serving dist with a plain Python file server, since doing so loses the styles and assets. That single configuration line explains a class of confusing local failures: the site renders unstyled, and the cause is the base path rather than a broken build.

The dependency set is small. package.json lists vitepress and markdown-it-footnote as dev dependencies, and the package is marked private, so the site toolchain is a build detail rather than a published artifact.

## What this repository cannot give you

Several expectations that a book repository raises are simply out of scope here. The English original is not included, and the README directs readers to the Amazon pages for the ebook and the print edition. The translation is a personal work, the repository description says it is for study and discussion and asks that contact be made if there is infringement, and the licence field for the repository is recorded as unknown. That combination means a reader who needs a copy with clear reuse rights, or a team that must place the text in an internal course, has to resolve permission questions outside the repository rather than inside it. Nothing here is legal advice, and the only defensible statement is that no licence identifier is published.

There is also no test suite, no linting, and no correction workflow beyond the invitation to open an issue or a pull request. For a text of this size, correctness depends on individual readers spotting errors and reporting them, which is a slow and uneven mechanism.

The realistic alternative is the English second edition, which the README itself treats as the canonical text. The trade is not really translation quality against no translation. It is a free, complete, community corrected text with a simplified typesetting and one contributed chapter, against a paid, professionally typeset book with colour coded listings and no translation. For learning Rust from listings, the original edition gives you more usable information per page. This project earns its place for readers who need the Chinese text more than they need the original layout.

## Conclusion

Readers who want the Programming Rust text in Chinese and can live with the missing chapter formatting should use the online site for reading and the Nightly Build tag for a PDF. Anyone who needs the original typesetting, a complete and licensed copy of the book, or a maintained mirror of the source should buy the second edition from the author instead. Check first that chapter 17 and the original color scheme and layout are not requirements of your reading setup, and that the absence of a stated licence in the repository is acceptable for your use.

## FAQ

### Is MeouSker77/ProgrammingRust a Rust library or a book?

It is a book project, specifically a personal Chinese translation of the second edition of Programming Rust, written in LaTeX. There is no Rust crate or library in the repository to depend on.

### Where can I download the PDF of the ProgrammingRust translation?

The README points to the Nightly Build release tag for the PDF download. A GitHub Action compiles the PDF daily from the latest code and uploads it to that tag, and older tags such as v0.20 and v0.19 are older snapshots of the translation.

### How do I build the ProgrammingRust site locally?

You need node, npm, and pandoc, then run npm install followed by npm run build to generate the static site into dist, and npm run preview to view it. The README warns against serving dist with a plain Python file server because the site config sets a base of /ProgrammingRust/ and assets would be lost.

### Is chapter 17 of the translated Rust book available?

The README states that chapter 17 is not translated, and credits a contributor with providing a LaTeX version of it. The release descriptions for v0.19 and v0.20 also list chapter 17 as the exception to the completed chapters.

### Does the translated book keep the original colour scheme and heading formats?

No. The README says only the content of the original was kept, and that colour schemes, heading formats, and header and footer formats all differ from the original edition. The GitHub build also ships without a specified font, which the README explains is due to font redistribution constraints.

## Sources

- [Issues](https://github.com/MeouSker77/ProgrammingRust/issues)
- [MeouSker77/ProgrammingRust on GitHub](https://github.com/MeouSker77/ProgrammingRust)
- [README](https://github.com/MeouSker77/ProgrammingRust/blob/main/README.md)
- [Releases](https://github.com/MeouSker77/ProgrammingRust/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/meousker77-programmingrust
