Rocket README

The project's README from github.com/rwf2/Rocket. As one markdown file: README.md.

Rocket

Build Status Rocket Homepage Current Crates.io Version Matrix: #rocket:mozilla.org

Rocket is an async web framework for Rust with a focus on usability, security, extensibility, and speed.

#[macro_use] extern crate rocket;

#[get("/<name>/<age>")]
fn hello(name: &str, age: u8) -> String {
    format!("Hello, {} year old named {}!", age, name)
}

#[launch]
fn rocket() -> _ {
    rocket::build().mount("/hello", routes![hello])
}

Visiting localhost:8000/hello/John/58, for example, will trigger the hello route resulting in the string Hello, 58 year old named John! being sent to the browser. If an <age> string was passed in that can't be parsed as a u8, the route won't get called, resulting in a 404 error.

Documentation

Rocket is extensively documented:

Documentation for the master branch is available at https://rocket.rs/master and https://api.rocket.rs/master.

Documentation for major release version ${x} is available at https://[api.]rocket.rs/v${x}. For example, the v0.4 docs are available at https://rocket.rs/v0.4 and https://api.rocket.rs/v0.4.

Finally, API docs for active git branches are available at https://api.rocket.rs/${branch}. For example, API docs for the master branch are available at https://api.rocket.rs/master. Branch rustdocs are built and deployed on every commit.

Examples

The examples directory contains complete crates that showcase Rocket's features and usage. Each example can be compiled and run with Cargo. For instance, the following sequence of commands builds and runs the hello example:

cd examples/hello
cargo run

Getting Help

If you find yourself needing help outside of the documentation, you may:

Contributing

Contributions are absolutely, positively welcomed and encouraged! If you're interested in contributing code, please first read CONTRIBUTING for complete guidelines. Additionally, you could:

  1. Submit a feature request or bug report as an issue.
  2. Ask for improved documentation as an issue.
  3. Comment on issues that require feedback.
  4. Answers questions in GitHub discussions questions.
  5. Share a project in GitHub discussions show & tell.

License

Rocket is licensed under either of the following, at your option:

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Rocket by you shall be dual licensed under the MIT License and Apache License, Version 2.0, without any additional terms or conditions.

The Rocket website docs are licensed under separate terms. Any contribution intentionally submitted for inclusion in the Rocket website docs by you shall be licensed under those terms.

Rocket (rwf2/Rocket)

Searching Database…

25.8K ·GitHub
这是什么?Rocket 是一个 Rust 的异步 Web 框架,注重易用性、安全性、可扩展性和速度——你只管写 Rust 代码,由 Rocket 负责路由和分发 Web 请求。
那它是让我在上面构建应用的框架,还是接入现有代码的库?是框架:你用 Rust 定义路由,Rocket 会把收到的请求分发到对应的路由——就像 README 里的 hello 路由,会在 /hello/John/58 上向访客问好。
我怎么让第一个 Rocket 应用跑起来?从仓库的 examples 目录里挑一个完整的 crate,用 Cargo 运行它,比如 hello 示例——每个示例都是一个独立的应用。
开始之前我需要装好哪些东西?只需要 Rust 工具链:这些示例用 Cargo 就能编译运行,README 里没有要求其他运行时、数据库或服务。
如果访客访问的路由中,该是数字的位置填了文字会怎么样?你的处理函数根本不会被调用:Rocket 会把路径段解析成处理函数参数的类型,解析不了的值(比如年龄参数 u8 传入了文字)会直接返回 404。
Rocket 是个尚在试验阶段的新项目,还是久经验证的选择?它从 2016 年 3 月开始开发,在 GitHub 上约有 25.8k 颗星;每次提交都会构建并部署对应分支的 rustdocs,可见开发非常活跃。
What are similar projects?hapi, axum, express, ktor, beego, actix-web, Slim, martini
Creator
rwf2
Size
8.3 MB
Stars
25.8K
Age
10y
Commits · 90 Days