2023 年值得关注的 6 个 Rust web开发框架

您所在的位置:网站首页 json框架有哪些 2023 年值得关注的 6 个 Rust web开发框架

2023 年值得关注的 6 个 Rust web开发框架

2023-12-09 18:11| 来源: 网络整理| 查看: 265

在 2023 年,在开始开发 API 和 Web 应用程序之前,哪个 Rust Web 框架最适合研究?在这里,我们将看看一些目前使用或看起来很有前途的最流行的框架。

Web 框架 (WF) 或 Web 应用程序框架 (WAF) 是一种软件框架,旨在支持 Web 应用程序的开发,包括 Web 服务、Web 资源、微服务和 Web API。Web 框架提供了一种在网上构建和部署 Web 应用程序的标准方法。Web 框架旨在自动化与 Web 开发中执行的常见活动相关的开销。

例如,许多 Web 框架提供用于数据库访问、模板框架(HTML、JSON 等)和会话管理的库,并且它们经常促进代码重用。虽然它们通常针对动态网站的开发,但它们也适用于静态网站。

Rust 是一种编程语言,为 Web 开发提供了巨大的潜力。它快速、安全,并为构建 Web 应用程序提供了许多完美的功能。以下是一些最佳框架及其开发需要考虑的功能。

Hyper

Hyper 仍在开发中,可能会在 2023 年稳定发布。但是 Hyper 看起来像是一个有前途的框架,可以在 2023 年探索,然后再决定在 Rust 中构建一个 Web 应用程序。

Hyper 计划在 2023 年 1 月底发布稳定的 1.0 版本。如果您想了解有关迁移到稳定版 1.0 的更多信息,请关注这里

hyper 是一个用 Rust 编写的快速 HTTP 实现。Hyper 可以用作:

用于与 Web 服务通信的客户端。用于构建这些 Web 服务的服务器。极快的响应速度具有高并发性和非阻塞套接字。支持 HTTP/1 和 HTTP/2。use std::{convert::Infallible, net::SocketAddr, error::Error}; use http_body_util::Full; use hyper::{Request, Response, body::Bytes, service::service_fn}; use hyper::server::conn::http1; use tokio::net::TcpListener; async fn hello( _: Request, ) -> Result { Ok(Response::new(Full::new(Bytes::from("Hello World!")))) } #[tokio::main] async fn main() -> Result { let addr = SocketAddr::from(([127, 0, 0, 1], 3000)); let listener = TcpListener::bind(addr).await?; loop { let (stream, _) = listener.accept().await?; tokio::task::spawn(async move { if let Err(err) = http1::Builder::new() .serve_connection(stream, service_fn(hello)) .await { println!("Error serving connection: {:?}", err); } }); } }

任何使用 rust API 框架的开发人员都需要了解 Hyper。它具有许多功能,并且易于使用。文档也是一流的,是新开发人员的最佳的学习资源。

Actix-web

Actix Web 是一个强大、实用且速度极快的 Rust Web 框架。Actix Web 基于 Rust Actor Model。它是一个用 Rust 编写的高性能 Web 框架,具有一组用于构建 Web 应用程序的强大功能。Actix Web 是类型安全的,功能丰富,可扩展和极快的。

它的活动网络

支持多路复用异步 I/O网络套接字中间件支持

以下是编写响应 Hello World 的网页的方法:

use actix_web::{get, web, App, HttpRequest, HttpServer, Responder}; #[get("/")] async fn index(\_req: HttpRequest) -> impl Responder { "Hello from the index page." } async fn hello(path: web::Path) -> impl Responder { format!("Hello World {}!", &path) } #[actix_web::main] async fn main() -> std::io::Result { HttpServer::new(|| { App::new() .service(index) .route("/{name}", web::get().to(hello)) }) .bind(("127.0.0.1", 8080))? .run() .await }

运行 cargo run 就可以启动服务器,然后在浏览器中查看效果。

Rocket

Rocket 是 Rust 的一个 Web 框架,它让编写 Web 应用程序变得非常简单和快速,并且它不会牺牲灵活性和类型安全,它无样板、且扩展易于使用。

Rocket 的哲学是让您以最少的配置启动和运行。它与 Rust 生态系统紧密集成,集成现有的库和工具非常容易。

下面是在 url 部署的页面示例,该页面采用 JSON 有效负载并将其存储在数据库中。

以下是网页实现的示例:PUT /:id

#[derive(Serialize, Deserialize)] struct Message


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3