网站建设制作设计优化兰州,湖南城乡建设网站,网站建设收费标准市场,开发一个电商网站本集合中所有库都是在开源项目中广泛使用且在2024年积极维护的库#xff0c;排名靠前的库是当前使用比较广泛的#xff0c;不全面但够用
Rust异步运行时
tokio#xff1a;异步运行时
async_std#xff1a;与标准库兼容性较强的运行时
monoio#xff1a;字节开源
smol…本集合中所有库都是在开源项目中广泛使用且在2024年积极维护的库排名靠前的库是当前使用比较广泛的不全面但够用
Rust异步运行时
tokio异步运行时
async_std与标准库兼容性较强的运行时
monoio字节开源
smol一个小型快速的运行时
RustWeb框架网络通信
其他Web框架见https://juejin.cn/post/7406997325715554315
axum注重人体工程学和模块化的 Web 应用程序框架Tokio团队开源
axum-server设计用于axum的hyper实现
HTTP/1 和 HTTP/2通过rustls或openssl进行 HTTPS通过hyper来实现高性能使用tower制作服务 API对axum有非常好的兼容性
actix高性能、异步、强大的路由系统和中间件支持
rocket简洁的语法、强大的类型安全和可扩展性
volo字节跳动服务框架团队研发的轻量级、高性能、可扩展性强、易用性好的 Rust RPC 框架借鉴了actix、axum、hyper、tokio、tonic、tower
ThrifgRPC
hyper底层HTTP实现
专注于实现 HTTP 协议本身包括解析 HTTP 请求和构建 HTTP 响应
tower用于构建可组合的网络服务的库Tokio 官方支持的构建异步网络服务中间件框架AxumTower-webTonic 这些项目都广泛使用了 Tower 这层抽象
适用于构建复杂的网络服务架构需要灵活地组合各种功能模块的场景适用于需要在不同的网络协议之间进行切换或同时支持多种协议时的场景
tonic基于 HTTP/2 和 gRPC 服务的库
支持 gRPC 的双向流、一元调用等特性也可以作为HTTP/2处理使用适用于需要构建高性能的分布式系统并且使用 gRPC 或 HTTP/2 进行通信的场景
prostProtocol Buffers的Rust实现Tokio出品
支持proto2、proto3
tonic-buildtonic-build可以为 Rust 生成服务端和客户端的代码框架
serde高效且通用地序列化和反序列化 Rust 数据结构的框架
reqwest添加重试机制可以提高与外部服务交互的可靠性
ipnet网络地址转换
mimeMedia Type媒体类型也通常称为多用途互联网邮件扩展或 MIME 类型是一种标准用来表示文档、文件或一组数据的性质和格式
application/javascript; charsetutf-8text/css; charsetutf-8
Rust错误处理
anyhow捕获错误
thiserror自定义错误
failure使错误处理更加结构化和可维护
Rust配置管理
dotenvy设置开发与生产环境可在.env文件中读取配置
Rust时间和日期
chrono操作时间日期、时间感知
uuid生成uuid
Rust数据处理
serde_jsonJSON 序列化和反序列化
base64用于 Base64 编码和解码
hex十六进制编码和解码
Rust数据验证
validator数据验证
检查字符串的长度、格式等验证数字的范围检查邮箱地址、URL 等格式的正确性
schemarsJson验证
兼容serde
valicoJson验证
Rust图像处理
image图像处理功能包括加载、保存、转换图像格式、调整大小、裁剪等
Rust音频处理
rodio用于音频播放和录制
Rust服务发现、配置管理、服务管理
rnacos用于与rnacos交互
rs_consul用于与 Consul 进行交互的 Rust 库。Consul 是一个流行的服务发现和配置管理工具
etcd_client用于与 etcd 分布式键值存储进行交互etcd 也可以用于服务发现
zookeeper_client与 ZooKeeper 进行交互
zookeeper与 ZooKeeper 进行交互的客户端
serde_yaml_ng可以用于解析、序列化 YAML 格式的配置文件结合标准库的文件操作std::fs可以实现配置管理
Rust日志管理、可观测性
tracingTokio维护分布式跟踪的 SDK全面的、可扩展的跟踪和诊断工具用于采集监控数据也可以用作日志注重跟踪
tracing-subscriber 提供了一组订阅器subscribers用于消费和处理 Tracing 生成的事件。订阅器可以用于输出日志到不同的目标比如控制台、文件等
tracing-appenderTokio维护用于将 Tracing 事件输出到不同目标的 appender。它可以帮助将日志记录到文件、标准输出等不同的位置
tracing-error将 Rust 的错误类型与 Tracing 的 span 相关联的库
tracing-log用于将 Tracing 事件转换为标准的 log 框架如 log crate事件的工具。这使得 Tracing 可以与其他使用 log 框架的库协同工作
tracing-opentelemetr提供了一个集成 Tracing 和 OpenTelemetry 的桥梁。它允许将 Tracing 生成的跟踪信息转换为 OpenTelemetry 格式以便与 OpenTelemetry 的生态系统进行集成
opentelemetry用于收集分布式系统中的跟踪、指标和日志数据
opentelemetry-otlpOpentelemetry 的一个组件用于将跟踪和指标数据发送到 OpenTelemetry ProtocolOTLP兼容的后端如 Zipkin、Jaeger 等
slog功能强大的日志库支持多种后端如控制台、文件、系统日志更注重结构化日志记录
log基础的日志库支持不同的日志级别如error!、warn!、info!、debug!和trace!
env_logger通过读取环境变量来配置日志级别和输出格式可以结合log使用
clap以声明式或程序式的方式创建命令行解析器提供参数行为、帮助生成、用户建议修复、彩色输出、shell补全等命令行功能
Rust与k8s
kube包含一个 Kubernetes 客户端、一个控制器运行时、一个自定义资源派生和各种工具
Rust数据库
sqlx异步sql工具包
手动编写 SQL 语句并进行参数绑定适合对性能有较高要求且需要精细控制 SQL 查询的场景适合当开发者希望充分利用 Rust 的类型系统来确保数据库操作的正确性时使用数据库支持
DatabaseVersionDriverURLMariaDB10.1mysqlmysql://root:rootlocalhost:3306Microsoft SQL Server2019mssql (等待完全重写驱动)MySQL5.6, 5.7, 8.0mysqlmysql://root:rootlocalhost:3306PostgreSQL9.5postgrespostgres://root:rootlocalhost:5432SQLite3.20.1sqlitesqlite:./sqlite.db?moderwc
seaql查询生成器支持 MySQL、Postgres 和 SQLite
允许以类型安全的方式构建复杂的 SQL 查询强调查询的灵活性和可组合性可以方便地构建动态查询适用于需要构建复杂 SQL 查询的项目尤其是那些对查询的灵活性和可维护性要求较高的场景适用于对不同数据库以统一方式构建查询的场景数据库支持
DatabaseDriverMariaDBsqlx-mysqlMySQLsqlx-mysqlPostgreSQLsqlx-postgresSQLitesqlx-sqliterusqliterusqlite
sea-orm依赖于sqlx基于seaql构建的异步动态ORM框架是对seaql的扩展 提供了更全面的对象关系映射ORM解决方案 适合希望以面向对象编程OOP的方式进行数据库操作的项目 对于大型项目或者需要进行复杂数据库操作和实体关系管理的场景SeaORM可以提高开发效率 数据库支持
DatabaseURLMySQLmysql://root:rootlocalhost:3306PostgreSQLpostgres://root:rootlocalhost:5432SQLite(在文件中)sqlite:./sqlite.db?moderwcSQLite(在内存中)sqlite::memory:
Rust AI
burn用 Rust 构建的极高的灵活性、计算效率和可移植性的深度学习框架是一个高级别的机器学习框架可以用如Candle这类低级别的深度学习框架作为后端
WGPU WebGPU跨平台 GPU 后端Candle使用 Candle 绑定的后端LibTorch使用 LibTorch 绑定的后端NdArray使用 NdArray 原语作为数据结构的后端autodiff将反向传播引入任何后端的后端装饰器Fusion将内核融合引入支持它的后端的后端装饰器
candle_coreHuggingface维护的机器学习框架