2023 年值得关注的六个 Rust Web开发框架-rust web 框架


本站和网页 https://www.51cto.com/article/744547.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

2023 年值得关注的六个 Rust Web开发框架-rust web 框架
51CTO首页内容精选博客学堂精品班直播训练营企业培训CTO训练营鸿蒙开发者社区WOT全球技术创新大会
公众号矩阵
移动端
注册/登录 短视频免费课程课程排行直播课软考学堂全部课程厂商认证IT技术2024年软考PMP项目管理软考资讯在线学习CTO训练营技术经理研习营LeaTech峰会文章资源问答课堂专栏直播 51CTO 鸿蒙开发者社区 51CTO技术栈 51CTO官微 51CTO学堂 51CTO博客 CTO训练营 鸿蒙开发者社区订阅号 51CTO题库小程序 51CTO学堂APP 51CTO学堂企业版APP 鸿蒙开发者社区视频号 账号设置 退出 内容精选视频话题短视频技术期刊活动 社区编辑申请 我关注的话题 我收藏的文章 账号设置 退出
注册/登录 2023 年值得关注的六个 Rust Web开发框架 作者:梦回丶故里 2023-01-11 09:23:50 开发 前端 Web 框架 (WF) 或 Web 应用程序框架 (WAF) 是一种软件框架,旨在支持 Web 应用程序的开发,包括 Web 服务、Web 资源、微服务和 Web API。Web 框架提供了一种在网上构建和部署 Web 应用程序的标准方法。 在 2023 年,在开始开发 API 和 Web 应用程序之前,哪个 Rust Web 框架最适合研究?在这里,我们将看看一些目前使用或看起来很有前途的最流行的框架。Web 框架 (WF) 或 Web 应用程序框架 (WAF) 是一种软件框架,旨在支持 Web 应用程序的开发,包括 Web 服务、Web 资源、微服务和 Web API。Web 框架提供了一种在网上构建和部署 Web 应用程序的标准方法。Web 框架旨在自动化与 Web 开发中执行的常见活动相关的开销。例如,许多 Web 框架提供用于数据库访问、模板框架(HTML、JSON 等)和会话管理的库,并且它们经常促进代码重用。虽然它们通常针对动态网站的开发,但它们也适用于静态网站。Rust 是一种编程语言,为 Web 开发提供了巨大的潜力。它快速、安全,并为构建 Web 应用程序提供了许多完美的功能。以下是一些最佳框架及其开发需要考虑的功能。HyperHyper 仍在开发中,可能会在 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<hyper::body::Incoming>,
) -> Result<Response<Full<Bytes>>, Infallible> {
Ok(Response::new(Full::new(Bytes::from("Hello World!"))))
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
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-webActix 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<String>) -> 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 就可以启动服务器,然后在浏览器中查看效果。RocketRocket 是 Rust 的一个 Web 框架,它让编写 Web 应用程序变得非常简单和快速,并且它不会牺牲灵活性和类型安全,它无样板、且扩展易于使用。Rocket 的哲学是让您以最少的配置启动和运行。它与 Rust 生态系统紧密集成,集成现有的库和工具非常容易。下面是在 url 部署的页面示例,该页面采用 JSON 有效负载并将其存储在数据库中。以下是网页实现的示例:PUT /:id#[derive(Serialize, Deserialize)]
struct Message<'r> {
contents: &'r str,
#[put("/<id>", data = "<msg>")]
fn update(db: &Db, id: Id, msg: Json<Message<'_>>) -> Value {
if db.contains_key(&id) {
db.insert(id, msg.contents);
json!({ "status": "ok" })
} else {
json!({ "status": "error" })
}Rocket 支持模板,拥有专题手册,支持异步流开箱即用。TideTide 是一个基于 Rust 构建的最小且实用的 Web 应用程序框架。Tide 是为快速 Web 开发而构建的。Tide 带有一组强大的内置功能,可以轻松构建异步 Web 应用程序和 API。Tide 基于 rust actix Web 框架。Tide 是功能丰富的 Web 框架。Tide 正在积极开发中,并拥有广泛的社区资源,可让您快速启动和运行Tide 框架具有以下功能,可帮助快速构建应用程序异步/等待支持类型安全路由请求守卫模板支持会话管理网络套接字支持让我们看一下使用 HTTP POST 谓词实现端点的示例use tide::Request;
use tide::prelude::*;
#[derive(Debug, Deserialize)]
struct Animal {
name: String,
legs: u16,
#[async_std::main]
async fn main() -> tide::Result<()> {
let mut app = tide::new();
app.at("/orders/shoes").post(order_shoes);
app.listen("127.0.0.1:8080").await?;
Ok(())
async fn order_shoes(mut req: Request<()>) -> tide::Result {
let Animal { name, legs } = req.body_json().await?;
Ok(format!("Hello, {}! I've put in an order for {} shoes", name, legs).into())
}现在,您可以使用 curl 访问具有 api /orders/shoescurl localhost:8080/orders/shoes -d '{ "name": "Pankaj", "legs": 9 }'这将响应预期的消息 Hello, Pankaj! I've put in an order for 9 shoesWarpWarp 是一个超级简单、可组合的 Web 服务器框架,基于 Rust 构建,用于提高速度。Warp 突出的构建块是 Filter,它可以组合和组合以表达对请求的丰富需求。得益于其过滤系统,warp 提供开箱即用的功能:路径路由和参数提取标头要求和提取查询字符串反序列化JSON 和表单正文多部分表单数据静态文件和目录网络套接字访问日志记录Gzip、Deflate 和 Brotli 压缩服务器发送的事件 (SSE)由于它建立在 hyper 和 Tokio - 一个异步 Rust 运行时之上,因此您可以自动获得:HTTP/1 和 HTTP/2 支持异步功能最快的 HTTP 实现之一经过测试和正确下面是一个使用 Warp 的简单 Hello, world 示例://main.rs
use warp::Filter;
#[tokio::main]
async fn main() {
// GET /hello/warp => 200 OK with body "Hello, warp!"
let hello = warp::path!("hello" / String)
.map(|name| format!("Hello, {}!", name));
warp::serve(hello)
.run(([127, 0, 0, 1], 3030))
.await;
}AxumAxum Web 框架旨在高效,快速和轻量级。Axum 的灵感来自 Erlang 编程语言,为开发人员提供了高效的并发性,非常适合开发实时 Web 应用程序、微服务和低延迟系统。Axum 是一个专注于人体工程学和模块化的 Web 应用程序框架。要使用 Axum,您需要 Rust 版本 v1.6 或更高版本Axum 的功能包括:使用无宏 API 将请求路由到处理程序。使用提取程序以声明方式分析请求。简单且可预测的错误处理模型。使用最少的样板生成响应。充分利用中间件、服务和 tower-http。支持 WebSocket 和其他协议异步 I/Ouse actix_web::{web, App, Responder};
fn index() -> impl Responder {
"Hello, world!"
fn main() {
App::new().route("/", web::get().to(index)).run();
}上面列出的框架只是 2023 年值得关注的一些 rust Web 应用程序框架。它们都具有不同的设计能力。你尝试测试它们并根据您的要求使用它们。 责任编辑:武晓燕
来源:
程序那些事儿 开发框架WAF 分享到微信 微信扫码分享 分享到微博 相关推荐 Rust 值得关注的三个 Web 框架 近年来,Rust语言在编程界里崭露头角,为多个领域提供了出色的解决方案,到目前为此,Rust生态中涌现出多个流行的Web框架,其中三个备受瞩目。 2024-02-01 00:21:41 Rust编程框架 2023年值得关注的六大IT趋势 在数字化速度加快的背景下,数字进步继续获得动力,以下是预计将在2023年改变企业的六个关键IT趋势。 2022-12-14 14:25:28 2023 年值得关注的数据趋势 随着Gartner®CoolVendors™在数据安全—保护和加速高级用例中的发布,数据安全态势管理(DSPM)成为主流。在那份报告中,Gartner1似乎开启了数据安全态势管理术语的流行使用以及每个VC对该领域的大规模投资。 2023-06-05 00:25:32 2020 年值得关注的十个跨平台开发框架 跨平台应用程序开发有其自身的优点,这也是其流行的原因。随着需求增长,一些跨平台的应用程序开发工具和框架也开始在市场上出现,很多公司都在尝试这些有趣的技术。 2020-02-03 09:30:42 开发技能代码 2023 年值得关注的十个 CSS 优秀趋势 随着Web开发的发展,新的CSS趋势正在出现,以帮助开发人员创建更具视觉效果的网站。从响应式设计和动画到新技术和样式,CSS趋势不断变化和适应,以满足现代网页设计的需求。由于CSS趋势是周期性的,因此可以合理地假设,到2023年,Web开发中将会出现一些新的CSS趋势。 2023-06-29 15:41:40 CSSWeb 开发 2023年值得关注的六大IT趋势 在数字化速度加快的背景下,数字进步继续获得动力,以下是预计将在2023年改变企业的六个关键IT趋势。 2022-12-14 14:18:52 2023年值得关注的新兴技术趋势 增强现实是一种使用户能够与现实世界中的数字内容进行交互的技术。通过在物理世界之上叠加虚拟图像和信息,AR提供了一种独特的沉浸式体验,可以增强我们的学习、工作和娱乐的方式。 2022-12-29 11:33:49 2023 年值得选择的 15 个优秀 JavaScript 框架 本文提供了2023年将流行的15个优秀JavaScript框架的完整列表,包括React、Angular、Vue、Svelte等。 2022-12-04 23:48:24 JavaScrip框架编程语言 2023年CDO需要关注的六个趋势 CDO的角色不会像前几年其他新兴的C级角色那样发展缓慢,快速集中、高效访问、精准分析、共享和货币化数据的现代技术已经到来。因此,数据已成为推动组织转型的最强大资源。这让CDO掌握了方向盘,他们的脚踩在了踏板上。以下是CDO应该留意的主要6个趋势。否则,您可能会坐在公共汽车的后部,而不是开车。 2023-03-29 15:26:45 2023年CDO需要关注的六个趋势 CDO的角色不会像前几年其他新兴的C级角色那样发展缓慢,快速集中、高效访问、精准分析、共享和货币化数据的现代技术已经到来。 2023-03-05 16:57:04 2023年值得关注的六大物联网技术趋势 对于希望推动发展的企业主来说,把握最新物联网趋势的脉搏对于2023年及以后的灵活性至关重要。 2022-09-05 21:38:16 物联网IoT Java编程的未来:2023年值得关注的五个趋势 本文将介绍Java编程的未来,以及人们需要关注的2023年最热门的五个Java编程发展趋势。 2023-08-24 09:00:00 Java编程 2020年值得关注的8个优秀Node.js框架 Node.js在过去十年里慢慢爬上了流行的阶梯,并根据这次Stackoverflow的调查,成为2019年最受欢迎的技术。 2020-07-07 14:07:52 Node.js框架开发 2023年值得关注的技术趋势 2023年将是商业技术令人振奋和快速发展的又一年,无论是哪些设备将出现新的或更多的使用方面,还是在企业和行业将如何适应市场变化和挑战方面。 2023-03-20 14:52:48 移动开发领域值得关注的六大JavaScript框架 作为移动开发者人员,你还在被浏览器兼容性和屏幕分辨率的问题所困扰么?现在是时候拓宽眼界,学习一些新的技巧了。 2015-08-20 09:15:04 移动开发JS框架javascript 2023 年值得关注的六大物联网技术趋势 对于希望推动发展的企业主来说,把握最新物联网趋势的脉搏对于2023年及以后的灵活性至关重要。 2022-09-05 10:13:28 物联网趋势物联网IOT 六个为Rust构建的IDE 在日渐成熟的发展中,Rust开始拥有更好的工具来提高效率。最近,一家提供集成开发环境(IDE)的捷克软件公司JetBrains发布了一个新的IDE——RustRover——用于编程语言Rust。它通过调试、语法高亮显示和错误检查等一系列特性提高了用Rust编码的效率。 2023-10-07 15:49:09 RustIDE工具 2022年值得关注的五个云趋势 企业对SaaS平台的需求正在迅速扩大,而SaaS将在2022年对云增长的贡献最大。公有云有助于拥有强大SaaS产品的中小企业和初创公司迅速扩张。 2022-01-12 16:18:10 云趋势公有云云计算 2021年值得关注的5个RPA趋势 机器人流程自动化(RPA)的采用是如何改变的保护数据隐私采用什么方法如何采用人工智能工具专家为此指出了值得关注的5个RPA趋势。 2020-12-29 10:58:40 RPA机器人流程自动化人工智能 2024年值得关注的20个安全方向 面对数字化时代的蓬勃发展,各个领域的安全性已经成为不可忽视的焦点。从个体用户到国家机构,从终端设备到云端基础设施,各方面都面临着独特而严峻的安全挑战。 2024-03-11 15:17:53 相似话题 后端 25957内容 开发工具 7202内容 测试 490内容 游戏开发 648内容 全部话题 同话题下的热门内容 五分钟上手Python爬虫:从干饭开始,轻松掌握技巧又出新JS运行时了!JS运行时大盘点良苦用心啊!我把七大跨域解决方法原理画成十张图,做成图解!一份关于2024年React初学者入门路线指南从独角兽到弃子,微软“生吞”日活百万的大模型独角兽!3位创始人挖走2位、团队大撤离、大撤资,孵化新AI部门!ToC应用,还有活路阿里二面:谈谈ThreadLocal的内存泄漏问题?2024年一些前端技术趋势最新动态汇总Axios vs. fetch():哪个最适合 HTTP 请求? 相关专题 更多 乘云 · 向未来:火山引擎公共云 · 城市分享会 点击获取2023年泛娱乐社交出海报告 2024-03-20 15:49:47 【因聚而生 数智有为】华为中国合作伙伴大会2024 2024-03-14 09:53:27 我收藏的内容 微博 QQ 微信 复制链接 微信扫码分享 51CTO业务 媒体 51CTOCIOAgeHC3iTechplur社区 51CTO博客软考资讯鸿蒙开发者社区教育 51CTO学堂精培企业培训CTO训练营 51CTO学堂 51CTO学堂企业版 51CTO官微 51CTO 关于我们&条款 关于我们 站点地图 网站大事 意见反馈 English 用户协议 隐私协议
北京市海淀区中关村南1条甲1号ECO中科爱克大厦6-7层
北京市公安局海淀分局备案编号:110108002980号
营业执照
京ICP备09067568号
Copyright © 2005-2024 51CTO.COM
京ICP证060544 版权所有 未经许可 请勿转载
友情链接 新浪科技腾讯科技网易科技凤凰科技驱动科技科技行者TechWeb艾瑞网站长之家速途网中国经济新闻网IT之家工联网极客公园236视频会议中国IDC圈企业网D1Net投资界次方元火山引擎 51CTO技术栈公众号 51CTO技术栈公众号
业务
速览
在线客服 媒体 51CTO CIOAge HC3i 社区 51CTO博客 鸿蒙开发者社区 教育 51CTO学堂 精培 企业培训 CTO训练营