[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5869":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":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":34,"discoverSource":35},5869,"salvo","salvo-rs\u002Fsalvo","salvo-rs","A powerful web framework built with a simplified design.","https:\u002F\u002Fsalvo.rs",null,"Rust",4371,269,42,21,0,2,4,25,7,67.79,"Apache License 2.0",false,"main",[26,27,28,29,5,30],"async","framework","http-server","rust","web","2026-06-12 04:00:27","\u003Cdiv align=\"center\">\n\u003Cp>\u003Cimg alt=\"Salvo\" width=\"132\" style=\"max-width:40%;min-width:60px;\" src=\"https:\u002F\u002Fsalvo.rs\u002Fimages\u002Flogo-text.svg\" \u002F>\u003C\u002Fp>\n\n\u003Ch3>A powerful and simple Rust web framework\u003C\u002Fh3>\n\n\u003Cp>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsalvo-rs\u002Fsalvo\u002Fblob\u002Fmain\u002FREADME.md\">English\u003C\u002Fa>&nbsp;&nbsp;\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsalvo-rs\u002Fsalvo\u002Fblob\u002Fmain\u002FREADME.zh.md\">简体中文\u003C\u002Fa>&nbsp;&nbsp;\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsalvo-rs\u002Fsalvo\u002Fblob\u002Fmain\u002FREADME.zh-hant.md\">繁體中文\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsalvo-rs\u002Fsalvo\u002Factions\">\n    \u003Cimg alt=\"build status\" src=\"https:\u002F\u002Fgithub.com\u002Fsalvo-rs\u002Fsalvo\u002Fworkflows\u002Fci-linux\u002Fbadge.svg\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsalvo-rs\u002Fsalvo\u002Factions\">\n    \u003Cimg alt=\"build status\" src=\"https:\u002F\u002Fgithub.com\u002Fsalvo-rs\u002Fsalvo\u002Fworkflows\u002Fci-macos\u002Fbadge.svg\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsalvo-rs\u002Fsalvo\u002Factions\">\n    \u003Cimg alt=\"build status\" src=\"https:\u002F\u002Fgithub.com\u002Fsalvo-rs\u002Fsalvo\u002Fworkflows\u002Fci-windows\u002Fbadge.svg\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Fsalvo-rs\u002Fsalvo\">\u003Cimg alt=\"codecov\" src=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Fsalvo-rs\u002Fsalvo\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg\" \u002F>\u003C\u002Fa>\n\u003Cbr>\n\u003Ca href=\"https:\u002F\u002Fcrates.io\u002Fcrates\u002Fsalvo\">\u003Cimg alt=\"crates.io\" src=\"https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fsalvo\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdocs.rs\u002Fsalvo\">\u003Cimg alt=\"Documentation\" src=\"https:\u002F\u002Fdocs.rs\u002Fsalvo\u002Fbadge.svg\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fcrates.io\u002Fcrates\u002Fsalvo\">\u003Cimg alt=\"Download\" src=\"https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fd\u002Fsalvo.svg\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frust-secure-code\u002Fsafety-dance\u002F\">\u003Cimg alt=\"unsafe forbidden\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Funsafe-forbidden-success.svg\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fblog.rust-lang.org\u002F2025\u002F12\u002F11\u002FRust-1.92.0\u002F\">\u003Cimg alt=\"Rust Version\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frust-1.92%2B-blue\" \u002F>\u003C\u002Fa>\n\u003Cbr>\n\u003Ca href=\"https:\u002F\u002Fsalvo.rs\">\n    \u003Cimg alt=\"Website\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fhttps-salvo.rs-%23f00\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FG8KfmS6ByH\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1041442427006890014.svg?logo=discord\">\n\u003C\u002Fa>\n\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n## Features\n\n- **Simple & Powerful** - Minimal boilerplate. If you can write a function, you can write a handler.\n- **HTTP\u002F1, HTTP\u002F2 & HTTP\u002F3** - Full protocol support out of the box.\n- **Flexible Routing** - Tree-based routing with middleware support at any level.\n- **Auto TLS** - ACME integration for automatic certificate management.\n- **OpenAPI** - First-class OpenAPI support with auto-generated documentation.\n- **WebSocket & WebTransport** - Real-time communication built-in.\n- **Built on Hyper & Tokio** - Production-ready async foundation.\n\n## Quick Start\n\nCreate a new project:\n```bash\ncargo new hello-salvo\ncd hello-salvo\ncargo add salvo tokio --features salvo\u002Foapi,tokio\u002Fmacros\n```\n\nWrite your first app in `src\u002Fmain.rs`:\n```rust\nuse salvo::prelude::*;\n\n#[handler]\nasync fn hello() -> &'static str {\n    \"Hello World\"\n}\n\n#[tokio::main]\nasync fn main() {\n    let router = Router::new().get(hello);\n    let acceptor = TcpListener::new(\"127.0.0.1:7878\").bind().await;\n    Server::new(acceptor).serve(router).await;\n}\n```\n\nRun it:\n```bash\ncargo run\n```\n\n## Why Salvo?\n\n### Middleware = Handler\n\nNo complex traits or generics. Middleware is just a handler:\n\n```rust\n#[handler]\nasync fn add_header(res: &mut Response) {\n    res.headers_mut().insert(header::SERVER, HeaderValue::from_static(\"Salvo\"));\n}\n\nRouter::new().hoop(add_header).get(hello)\n```\n\n### Tree Routing with Middleware\n\nApply middleware to specific route branches:\n\n```rust\nRouter::new()\n    \u002F\u002F Public routes\n    .push(Router::with_path(\"articles\").get(list_articles))\n    \u002F\u002F Protected routes\n    .push(Router::with_path(\"articles\").hoop(auth_check).post(create_article).delete(delete_article))\n```\n\n### OpenAPI in One Line\n\nJust change `#[handler]` to `#[endpoint]`:\n\n```rust\n#[endpoint]\nasync fn hello() -> &'static str {\n    \"Hello World\"\n}\n```\n\n### Auto HTTPS with ACME\n\nGet TLS certificates automatically from Let's Encrypt:\n\n```rust\nlet listener = TcpListener::new(\"0.0.0.0:443\")\n    .acme()\n    .add_domain(\"example.com\")\n    .http01_challenge(&mut router)\n    .quinn(\"0.0.0.0:443\"); \u002F\u002F HTTP\u002F3 support\n```\n\n## CLI Tool\n\n```bash\ncargo install salvo-cli\nsalvo new my_project\n```\n\n## Learn More\n\n- [Official Website](https:\u002F\u002Fsalvo.rs)\n- [API Documentation](https:\u002F\u002Fdocs.rs\u002Fsalvo)\n- [Examples](.\u002Fexamples\u002F)\n\n## Recommended Projects\n\n- **[Savhub](https:\u002F\u002Fgithub.com\u002Fsavhub-ai\u002Fsavhub)** - Easily manage your AI skills. A platform built with Salvo for organizing and sharing AI capabilities.\n- **[Palpo](https:\u002F\u002Fgithub.com\u002Fpalpo-matrix-server\u002Fpalpo)** - A Matrix server implementation in Rust, powered by Salvo.\n\nCheck out the full list of community projects in our [ECOSYSTEM.md](.\u002FECOSYSTEM.md).\n\n## Performance\n\nSalvo consistently ranks among the fastest Rust web frameworks:\n- [Web Frameworks Benchmark](https:\u002F\u002Fweb-frameworks-benchmark.netlify.app\u002Fresult?l=rust)\n- [TechEmpower Benchmarks](https:\u002F\u002Fwww.techempower.com\u002Fbenchmarks\u002F#section=data-r23)\n\n## Support\n\nIf you find Salvo useful, consider [buying me a coffee](https:\u002F\u002Fko-fi.com\u002Fchrislearn).\n\n## License\n\nLicensed under [Apache License 2.0](LICENSE).\n","Salvo 是一个用 Rust 编写的强大且简洁的 Web 框架。它支持 HTTP\u002F1、HTTP\u002F2 和 HTTP\u002F3 协议，提供灵活的基于树结构的路由系统，并内置了自动 TLS 证书管理、OpenAPI 文档生成及 WebSocket 和 WebTransport 实时通信功能。该框架构建于 Hyper 和 Tokio 之上，确保了其在生产环境中的异步性能和稳定性。适用于需要高性能、高并发处理能力的 Web 应用场景，尤其是对安全性有较高要求的服务端开发项目。","2026-06-11 03:05:14","top_language"]