[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5617":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":32,"discoverSource":33},5617,"zero-to-production","LukeMathWalker\u002Fzero-to-production","LukeMathWalker","Code for \"Zero To Production In Rust\", a book on API development using Rust.","https:\u002F\u002Fwww.zero2prod.com",null,"Rust",6474,587,77,16,0,2,6,25,7,39.31,"Apache License 2.0",false,"main",true,[27,28],"book","rust","2026-06-12 02:01:12","# Zero To Production In Rust\n\n\u003Cdiv align=\"center\">\u003Ca href=\"https:\u002F\u002Fzero2prod.com\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fwww.zero2prod.com\u002Fassets\u002Fimg\u002Fzero2prod.png\" width=\"75%\" \u002F>\u003C\u002Fa>\u003C\u002Fdiv>\n\n[Zero To Production In Rust](https:\u002F\u002Fzero2prod.com) is an opinionated introduction to backend development using Rust.\n\nThis repository serves as supplementary material for [the book](https:\u002F\u002Fzero2prod.com\u002F): it hosts several snapshots of the codebase for our email newsletter project as it evolves throughout the book.\n\n## Chapter snapshots\n\nThe [`main`](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production) branch shows the project at the end of the book.\n\nYou can browse the project at the end of previous chapters by switching to their dedicated branches:\n\n- [Chapter 3, Part 0](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-03-part0)\n- [Chapter 3, Part 1](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-03-part1)\n- [Chapter 4](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-04)\n- [Chapter 5](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-05)\n- [Chapter 6, Part 0](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-06-part0)\n- [Chapter 6, Part 1](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-06-part1)\n- [Chapter 7, Part 0](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-07-part0)\n- [Chapter 7, Part 1](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-07-part1)\n- [Chapter 7, Part 2](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-07-part2)\n- [Chapter 8](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-08)\n- [Chapter 9](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-09)\n- [Chapter 10, Part 0](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-10-part0)\n- [Chapter 10, Part 1](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-10-part1)\n- [Chapter 10, Part 2](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-10-part2)\n- [Chapter 10, Part 3](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-10-part3)\n- [Chapter 11](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Ftree\u002Froot-chapter-11)\n\n## Pre-requisites\n\nYou'll need to install:\n\n- [Rust](https:\u002F\u002Fwww.rust-lang.org\u002Ftools\u002Finstall)\n- [Docker](https:\u002F\u002Fdocs.docker.com\u002Fget-docker\u002F)\n\nThere are also some OS-specific requirements.\n\n### Windows\n  \n```bash\ncargo install -f cargo-binutils\nrustup component add llvm-tools-preview\n```\n\n```\ncargo install --version=\"~0.7\" sqlx-cli --no-default-features --features rustls,postgres\n```\n\n### Linux\n\n```bash\n# Ubuntu \nsudo apt-get install lld clang libssl-dev postgresql-client\n# Arch \nsudo pacman -S lld clang postgresql\n```\n\n```\ncargo install --version=\"~0.7\" sqlx-cli --no-default-features --features rustls,postgres\n```\n\n### MacOS\n\n```bash\nbrew install michaeleisel\u002Fzld\u002Fzld\n```\n\n```\ncargo install --version=\"~0.7\" sqlx-cli --no-default-features --features rustls,postgres\n```\n\n## How to build\n\nLaunch a (migrated) Postgres database via Docker:\n\n```bash\n.\u002Fscripts\u002Finit_db.sh\n```\n\nLaunch a Redis instance via Docker:\n\n```bash\n.\u002Fscripts\u002Finit_redis.sh\n```\n\nLaunch `cargo`:\n\n```bash\ncargo build\n```\n\nYou can now try with opening a browser on http:\u002F\u002F127.0.0.1:8000\u002Flogin after\nhaving launch the web server with `cargo run`.\n\nThere is a default `admin` account with password\n`everythinghastostartsomewhere`. The available entrypoints are listed in\n[src\u002Fstartup.rs](https:\u002F\u002Fgithub.com\u002FLukeMathWalker\u002Fzero-to-production\u002Fblob\u002F6bd30650cb8670a146819a342ccefd3d73ed5085\u002Fsrc\u002Fstartup.rs#L92)\n\n## How to test\n\nLaunch a (migrated) Postgres database via Docker:\n\n```bash\n.\u002Fscripts\u002Finit_db.sh\n```\n\nLaunch a Redis instance via Docker:\n\n```bash\n.\u002Fscripts\u002Finit_redis.sh\n```\n\nLaunch `cargo`:\n\n```bash\ncargo test \n```\n","\"Zero To Production In Rust\" 是一本介绍使用 Rust 语言进行后端 API 开发的书籍配套代码库。该项目通过构建一个电子邮件通讯系统，展示了从零开始到生产就绪的全过程，包括但不限于数据库操作、安全性增强以及性能优化等关键功能。采用的技术栈以 Rust 为核心，并结合 Docker 进行容器化部署，确保了应用的高度可移植性和稳定性。适合希望深入了解如何利用 Rust 构建高效、安全且易于维护的服务端应用程序的开发者阅读和实践。","2026-06-11 03:04:21","top_language"]