Rust 全栈开发 - 5 Actix
5. Actix
Actix是一个Web框架
我们新建一个文件夹并打开
Last login: Thu Apr 7 13:49:07 on ttys002
qinjianquan@MacBook-Pro-10 ~ % cargo new wsCreated binary (application) `ws` package
qinjianquan@MacBook-Pro-10 ~ % cd ws
qinjianquan@MacBook-Pro-10 ws % code .
然后在toml文件中添加一个成员
/Users/qinjianquan/ws/Cargo.toml
[workspace]members = ["webservice"]
再在命令行创建如下项目
qinjianquan@MacBook-Pro-10 ws % cargo new webserviceCreated binary (application) `webservice` package
再添加依赖
/Users/qinjianquan/ws/webservice/Cargo.toml
[package]
name = "webservice"
version = "0.1.0"
edition = "2018"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]actix-web = "3"
cargo build
axtix-rt = "1.1.1"[[bin]]
name = "server1"
我们继续编写route并运行
use actix_web::{web,App,HttpResponse,HttpServer,Responder};
use std::io;//configure route
pub fn general_routes(cfg:&mut web::ServiceConfig) {cfg.route("/health",web::get().to(health_check_handler));
}//configure handler
pub async fn health_check_handler()->impl Responder {HttpResponse::Ok().json("Actix Web Service is Running!")
}//instantiate and run HTTP server#[actix_rt::main]
async fn main() -> io::Result<()> {//construct App and configure routelet app = move || App::new().configure(general_routes);//run HTTP serverHttpServer::new(app).bind("127.0.0.1:3000")?.run().await
}
运行并在终端查看localhost:3000/health,能够查到预期结果
cargo run -p webservice --bin server1
Axtix的基本组件
浏览器请求 - Actix HTTP Server - Actix Route - Actix Handler
Axtix并发
支持两类:1 异步IO :给定的OS原生线程在等待I/O时执行其他任务(例如侦听网络连接);2 多线程并行:默认情况下启动OS原生线程的数量与系统逻辑CPU数量相同
Rust 全栈开发 - 5 Actix相关推荐
- 2022 全栈开发值得关注的技术产品
随着「云原生」以及「serverless」等概念的兴起,越来越多的公司开始不再刻意强调前后端之分,身处其中,我们也能感觉到,前后端的边界越来越模糊,更多的划分更接近于应用开发和基础设施建设,大公司着力 ...
- 扶贫干部拍胸脯认证,AI开发者上手零门槛,百度打造 “云智一体”全栈开发杀手锏...
"我可以拍着胸脯说识别准确率很高."扶贫干部刘乐这样评价他在使用百度EasyDL平台助力扶贫的效果,他是陕西省汉中市扶贫信息中心副主任,也是一名热爱编程的程序员. 在近期百度智能云 ...
- mybatis mapper.xml dtd_全栈开发踩坑之路4-用MyBatis实现服务
1.前言 上一篇文章介绍了如何设计后端的Mysql数据库:Alex Wang:全栈开发踩坑之路3-MySql数据库设计,本文介绍如何用MyBatis实现后端服务. 本后端项目的Github地址(撰写中 ...
- 预告:Javascript全栈开发的系列文章
自从一年前发布了Vuejs小书的电子书,也有些日子没有碰过它们了,现在因为项目的缘故,需要使用JavaScript全栈开发.所以,我得把这个全栈环境搭建起来. 说起来搭建JS全栈开发环境,设计到的东西 ...
- 《JavaScript快速全栈开发》作者Azat Mardanov:现在是拥抱Node技术栈的最佳时机
非商业转载请注明作译者.出处,并保留本文的原始链接:http://www.ituring.com.cn/article/195742 Azat Mardanov是一位有着12年开发经验的资深软件工程师 ...
- 从编程小白到全栈开发:基于框架开发服务端
上文中,我们了解了关于服务器端的一些概念知识,尤其是HTTP协议相关的最基本知识点,今天我想跟大家分享一下在平时正真的开发中,是如何来利用和体现这些内容的. 还记得我在<从编程小白到全栈开发:改 ...
- PYTHON高级全栈开发工程师-老男孩教育
PYTHON高级全栈开发工程师 最近开班日期:2016年4月17号 课程周期:4至4.5个月 学习方式:全脱产面授学习(周一至周五,早9:3 ...
- vue java 插件开发_实习模块vue+java小型全栈开发(三)
实习模块vue+java小型全栈开发(三) --dx 背景 首先,先给自己一个答案:这篇博客我定义为(三),因为之前的两个模块页面,内容都是一样的,但是被改了几次需求,就一直拖着没有上传. 今天是真正 ...
- python利器手机版-将安卓手机打造成你的python全栈开发利器
超神利器- 相信多数安卓用户都使用过Qpython这款移动端的Python编辑器吧?之前我也研究过一阵子这个工具,但因为一次简单的爬虫让我对它失望之极.Qpython不支持lxml这个模块,然而pyt ...
最新文章
- luogu 3796 【模板】AC自动机(加强版)
- git工具tig用法
- bzoj3252攻略(线段树+dfs序)或者(树链剖分+dfs)
- mysql数据库version版本控制_MySQL数据库版本控制
- AndroidStudio_android通过服务,检测本程序是否已经终止运行_终止运行后发送通知给Http服务器---Android原生开发工作笔记246
- 计算机控制液压同步顶升系统,PLC多点控制液压同步顶升系统的运用
- cameraLink
- 手机连无线显示服务器超时,手机wifi为什么会连接超时
- push notifications step1 打不开
- html价格划掉的样式,用css布局价格划线_价钱中划线_价格中间贯穿删除线效果样式布局...
- 赵丽颖冯绍峰官宣 | 微博服务器瘫痪!运维:该拿什么拯救我?
- kafka自带的zk启动_kafka单机安装和启动
- 为什么说大数据就业前景一片光明?
- Python多子图总标题title
- C语言实验03_判断语句
- 学IT,是不是穷人家孩子获得高收入的唯一出路?
- 张一鸣:Stay hungry, Stay young
- 微信小程序数据绑定与模板语法
- 分布式系统 - CAP, BASE, ACID之间的关系 - 学习/实践
- 路由表转发最长匹配原则