[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5713":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":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":16,"starSnapshotCount":16,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},5713,"tide","http-rs\u002Ftide","http-rs","Fast and friendly HTTP server framework for async Rust","https:\u002F\u002Fdocs.rs\u002Ftide",null,"Rust",5097,327,88,103,0,38.55,"Apache License 2.0",false,"main",[],"2026-06-12 02:01:14","\u003Ch1 align=\"center\">Tide\u003C\u002Fh1>\n\u003Cdiv align=\"center\">\n \u003Cstrong>\n   Serve the web\n \u003C\u002Fstrong>\n\u003C\u002Fdiv>\n\n\u003Cbr \u002F>\n\n\u003Cdiv align=\"center\">\n  \u003C!-- Crates version -->\n  \u003Ca href=\"https:\u002F\u002Fcrates.io\u002Fcrates\u002Ftide\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Ftide.svg?style=flat-square\"\n    alt=\"Crates.io version\" \u002F>\n  \u003C\u002Fa>\n  \u003C!-- Downloads -->\n  \u003Ca href=\"https:\u002F\u002Fcrates.io\u002Fcrates\u002Ftide\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fd\u002Ftide.svg?style=flat-square\"\n      alt=\"Download\" \u002F>\n  \u003C\u002Fa>\n  \u003C!-- docs.rs docs -->\n  \u003Ca href=\"https:\u002F\u002Fdocs.rs\u002Ftide\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-blue.svg?style=flat-square\"\n      alt=\"docs.rs docs\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n  \u003Ch3>\n    \u003Ca href=\"https:\u002F\u002Fdocs.rs\u002Ftide\">\n      API Docs\n    \u003C\u002Fa>\n    \u003Cspan> | \u003C\u002Fspan>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide\u002Fblob\u002Fmain\u002F.github\u002FCONTRIBUTING.md\">\n      Contributing\n    \u003C\u002Fa>\n    \u003Cspan> | \u003C\u002Fspan>\n    \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fx2gKzst\">\n      Chat\n    \u003C\u002Fa>\n  \u003C\u002Fh3>\n\u003C\u002Fdiv>\n\nTide is a minimal and pragmatic Rust web application framework built for\nrapid development. It comes with a robust set of features that make building\nasync web applications and APIs easier and more fun.\n\n## Getting started\n\nIn order to build a web app in Rust you need an HTTP server, and an async\nruntime. After running `cargo init` add the following lines to your\n`Cargo.toml` file:\n\n```toml\n# Example, use the version numbers you need\ntide = \"0.17.0\"\nasync-std = { version = \"1.8.0\", features = [\"attributes\"] }\nserde = { version = \"1.0\", features = [\"derive\"] }\n```\n\n## Examples\n\nCreate an HTTP server that receives a JSON body, validates it, and responds\nwith a confirmation message.\n\n```rust\nuse tide::Request;\nuse tide::prelude::*;\n\n#[derive(Debug, Deserialize)]\nstruct Animal {\n    name: String,\n    legs: u16,\n}\n\n#[async_std::main]\nasync fn main() -> tide::Result\u003C()> {\n    let mut app = tide::new();\n    app.at(\"\u002Forders\u002Fshoes\").post(order_shoes);\n    app.listen(\"127.0.0.1:8080\").await?;\n    Ok(())\n}\n\nasync fn order_shoes(mut req: Request\u003C()>) -> tide::Result {\n    let Animal { name, legs } = req.body_json().await?;\n    Ok(format!(\"Hello, {}! I've put in an order for {} shoes\", name, legs).into())\n}\n```\n\n```sh\n$ curl localhost:8080\u002Forders\u002Fshoes -d '{ \"name\": \"Chashu\", \"legs\": 4 }'\n```\n```text\nHello, Chashu! I've put in an order for 4 shoes\n```\n\n```sh\n$ curl localhost:8080\u002Forders\u002Fshoes -d '{ \"name\": \"Mary Millipede\", \"legs\": 750 }'\n```\n```text\nHello, Mary Millipede! I've put in an order for 750 shoes\n```\n\nSee more examples in the [examples](https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide\u002Ftree\u002Fmain\u002Fexamples) directory.\n\n## Tide's design:\n- [Rising Tide: building a modular web framework in the open](https:\u002F\u002Frustasync.github.io\u002Fteam\u002F2018\u002F09\u002F11\u002Ftide.html)\n- [Routing and extraction in Tide: a first sketch](https:\u002F\u002Frustasync.github.io\u002Fteam\u002F2018\u002F10\u002F16\u002Ftide-routing.html)\n- [Middleware in Tide](https:\u002F\u002Frustasync.github.io\u002Fteam\u002F2018\u002F11\u002F07\u002Ftide-middleware.html)\n- [Tide's evolving middleware approach](https:\u002F\u002Frustasync.github.io\u002Fteam\u002F2018\u002F11\u002F27\u002Ftide-middleware-evolution.html)\n- [Tide, the present and future of](https:\u002F\u002Fblog.yoshuawuyts.com\u002Ftide\u002F)\n- [Tide channels](https:\u002F\u002Fblog.yoshuawuyts.com\u002Ftide-channels\u002F)\n\n## Community Resources\n\u003Csub>To add a link to this list, [edit the markdown\nfile](https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide\u002Fedit\u002Fmain\u002FREADME.md) and\nsubmit a pull request (github login required)\u003C\u002Fsub>\u003Cbr\u002F>\u003Csup>Listing here\ndoes not constitute an endorsement or recommendation from the tide\nteam. Use at your own risk.\u003C\u002Fsup>\n\n### Listeners\n* [tide-rustls](https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide-rustls) TLS for tide based on async-rustls\n* [tide-acme](https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide-acme) HTTPS for tide with automatic certificates, via Let's Encrypt and ACME tls-alpn-01 challenges\n\n### Template engines\n* [tide-tera](https:\u002F\u002Fgithub.com\u002Fjbr\u002Ftide-tera)\n* [tide-handlebars](https:\u002F\u002Fgithub.com\u002FNo9\u002Ftide-handlebars)\n* [askama](https:\u002F\u002Fgithub.com\u002Fdjc\u002Faskama) (includes support for tide)\n\n### Routers\n* [tide-fluent-routes](https:\u002F\u002Fgithub.com\u002Fmendelt\u002Ftide-fluent-routes)\n\n### Auth\n* [tide-http-auth](https:\u002F\u002Fgithub.com\u002Fchrisdickinson\u002Ftide-http-auth)\n* [tide-openidconnect](https:\u002F\u002Fgithub.com\u002Fmalyn\u002Ftide-openidconnect)\n* [tide-jwt](https:\u002F\u002Fgithub.com\u002Fnyxtom\u002Ftide-jwt)\n\n### Testing\n* [tide-testing](https:\u002F\u002Fgithub.com\u002Fjbr\u002Ftide-testing)\n\n### Middleware\n* [tide-compress](https:\u002F\u002Fgithub.com\u002FFishrock123\u002Ftide-compress)\n* [tide-sqlx](https:\u002F\u002Fgithub.com\u002Feaze\u002Ftide-sqlx) - _SQLx pooled connections & transactions_\n* [tide-trace](https:\u002F\u002Fgithub.com\u002Fno9\u002Ftide-trace)\n* [tide-tracing](https:\u002F\u002Fgithub.com\u002Fethanboxx\u002Ftide-tracing)\n* [opentelemetry-tide](https:\u002F\u002Fgithub.com\u002Fasaaki\u002Fopentelemetry-tide)\n* [driftwood](https:\u002F\u002Fgithub.com\u002Fjbr\u002Fdriftwood) http logging middleware\n* [tide-compressed-sse](https:\u002F\u002Fgithub.com\u002FYarn\u002Ftide_compressed_sse)\n* [tide-websockets](https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide-websockets)\n* [tide-csrf](https:\u002F\u002Fgithub.com\u002Fmalyn\u002Ftide-csrf)\n* [tide-flash](https:\u002F\u002Fgithub.com\u002Fnyxtom\u002Ftide-flash)\n\n### Session Stores\n* [async-redis-session](https:\u002F\u002Fgithub.com\u002Fjbr\u002Fasync-redis-session)\n* [async-sqlx-session](https:\u002F\u002Fgithub.com\u002Fjbr\u002Fasync-sqlx-session) (sqlite, mysql, postgres, ...)\n* [async-mongodb-session](https:\u002F\u002Fgithub.com\u002Fyoshuawuyts\u002Fasync-mongodb-session\u002F)\n\n### Example applications\n* [dot dot vote](https:\u002F\u002Fgithub.com\u002Frtyler\u002Fdotdotvote\u002F)\n* [tide-example](https:\u002F\u002Fgithub.com\u002Fjbr\u002Ftide-example) (sqlx + askama)\n* [playground-tide-mongodb](https:\u002F\u002Fgithub.com\u002Fyoshuawuyts\u002Fplayground-tide-mongodb)\n* [tide-morth-example](https:\u002F\u002Fgithub.com\u002FNo9\u002Ftide-morth-example\u002F)\n* [broker](https:\u002F\u002Fgithub.com\u002Fapibillme\u002Fbroker\u002F) (backend as a service)\n* [tide-basic-crud](https:\u002F\u002Fgithub.com\u002Fpepoviola\u002Ftide-basic-crud) (sqlx + tera)\n* [tide-graphql-mongodb](https:\u002F\u002Fgithub.com\u002Fzzy\u002Ftide-graphql-mongodb)\n  - Clean boilerplate for graphql services using tide, rhai, async-graphql, surf, graphql-client, handlebars-rust, jsonwebtoken, and mongodb.\n  - Graphql Services: User register, Salt and hash a password with PBKDF2 , Sign in， JSON web token authentication, Change password， Profile Update, User's query & mutation, and Project's query & mutation.\n  - Web Application: Client request, bring & parse GraphQL data, Render data to template engine(handlebars-rust)， Define custom helper with Rhai scripting language.\n* [surfer](https:\u002F\u002Fgithub.com\u002Fzzy\u002Fsurfer)\n  - The Blog built on Tide stack, generated from [tide-graphql-mongodb](https:\u002F\u002Fgithub.com\u002Fzzy\u002Ftide-graphql-mongodb).\n  - Backend for graphql services using tide, async-graphql, jsonwebtoken, mongodb and so on.\n  - Frontend for web application using tide, rhai, surf, graphql_client, handlebars-rust, cookie and so on.\n* [tide-server-example](https:\u002F\u002Fgithub.com\u002FLomect\u002Ftide-server-example)\n\n## Contributing\nWant to join us? Check out our [The \"Contributing\" section of the\nguide][contributing] and take a look at some of these issues:\n\n- [Issues labeled \"good first issue\"][good-first-issue]\n- [Issues labeled \"help wanted\"][help-wanted]\n\n#### Conduct\n\nThe Tide project adheres to the [Contributor Covenant Code of\nConduct](https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide\u002Fblob\u002Fmain\u002F.github\u002FCODE_OF_CONDUCT.md).\nThis describes the minimum behavior expected from all contributors.\n\n## License\n\nLicensed under either of\n\n- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n\nat your option.\n\n#### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be\ndual licensed as above, without any additional terms or conditions.\n\n[releases]: https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide\u002Freleases\n[contributing]: https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide\u002Fblob\u002Fmain\u002F.github\u002FCONTRIBUTING.md\n[good-first-issue]: https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide\u002Flabels\u002Fgood%20first%20issue\n[help-wanted]: https:\u002F\u002Fgithub.com\u002Fhttp-rs\u002Ftide\u002Flabels\u002Fhelp%20wanted\n","Tide 是一个快速且友好的异步 Rust HTTP 服务器框架，专为简化 Web 应用和 API 的开发而设计。其核心功能包括简洁的路由系统、强大的中间件支持以及对异步处理的原生支持，使得开发者能够轻松构建高性能的网络服务。Tide 框架特别适合需要利用 Rust 强大的并发模型来处理大量并发请求的应用场景，如微服务架构下的后端服务或实时数据处理系统。通过 Tide，开发者可以享受到 Rust 语言的安全性和性能优势，同时保持代码的可读性和维护性。",2,"2026-06-11 03:04:52","top_language"]