Awesome
data structure
- bluss/indexmap - 按插入顺序保存键值对的map链表。
- xacrimon/dashmap - 线程安全的map链表。
- jmitchell/multiset - 无序的值集合(允许重复)。
- AngelicosPhosphoros/keyed_priority_queue - 支持更改优先级或按键提前删除的优先级队列。
- garro95/priority-queue - 优先级队列,该队列具有更改对象优先级的功能。优先级和项存储在IndexMap中,队列实现为索引堆。
- Peternator7/strum - 用于处理枚举和字符串的宏。
- servo/rust-smallvec - 改变数组默认放在堆内存上。通过长度决定将数组放在栈上还是堆上。
- cargo test 时抛栈内存溢出错误,说明栈穿了。因为test时栈只有2m,release 有20m。所以建议通过宏设定test 时 vec 为1,release为32或64(也不能太大)。
- bodil/smartstring - 将短字符串存在栈内存上,从而提升性能效率。
async
- tokio-rs/tokio - 👍 异步运行时。提供 I/O、网络、调度、定时器等。
- bikeshedder/deadpool - 👍 资源池,适合做连接池和任何类型的对象池。有托管和非托管模式。
- matklad/once_cell - 👍 延期执行。
- danieldg/async-once-cell - 👍 异步的延期执行。
- crossbeam-rs/crossbeam - 👍 并发编程工具:通道、队列等。
- rust-lang-nursery/lazy-static.rs - 声明延迟求值。
- Amanieu/parking_lot - 👍 比标准库性能更快的 Mutex、RwLock、Condvar、Once。
encode
- crates/serde_json - 👍 强大的JSON序列化库。
- bincode-org/bincode - 将结构体序列化为字节,二进制序列化/反序列化策略。
- KokaKiwi/rust-hex - 十六进制编解码库。
- stainless-steel/md5 - md5库。
- marshallpierce/rust-base64 - base64库。
- uuid-rs/uuid - 生成 uuid 库。
- rust-lang/flate2-rs - deflate、zlib、zlib 的压缩/解压缩库。
text processing
- crates/url - url 解析库。
- withoutboats/heck - 大小写转换库。
- Anders429/substring - 字符串的截取。
- tokio-rs/bytes - bytes 的一些操作,put、split、capacity 等常见操作。
- rust-lang/regex - 正则表达式库。
- fancy-regex/fancy-regex - 正则表达式实现,支持丰富的功能,包括backreferences和lookaround。
web
- hyperium/hyper - 👍 http 相关的基础库。
- seanmonstar/reqwest - 一个简单而强大的 Rust HTTP 客户端。
- tokio-rs/axum - 👍 使用 Tokio、Tower 和 Hyper 构建的符合人体工程学的模块化 Web 框架。
- actix/actix-web - 功能强大、实用且速度极快的 Rust Web 框架。
- hyperium/mime - 判断 MIME(HTTP媒体类型)。
- denoland/fastwebsockets - websockket server。
- hyperium/tonic - 👍 gRPC 在 rust 的实现。
openapi
- juhaku/utoipa - 编译时自动生成openapi文档。
database
- redis-rs/redis-rs - redis 库。
- rusqlite/rusqlite - sqlite 库。
- spacejam/sled - 轻量级高性能事务纯rust的嵌入式数据库。
- launchbadge/sqlx - 👍 mysql、pg 等数据库的orm框架。
file
- Stebalien/tempfile - 管理临时文件和目录的库。
- Xuanwo/serfig - 分层的配置读取器。
- toml-rs/toml - toml 解析库。
- BurntSushi/rust-csv - csv 操作库。
- zip-rs/zip - zip 文件压缩、读取库。
- alexcrichton/tar-rs - tar 文件读取库。
log
- tokio-rs/console - console_subscriber
- rust-lang/log - 轻量级的日志库。
- rust-cli/env_logger - 通过环境变量配置的“log”的日志记录实现。
error
- dtolnay/anyhow - 轻松返回error类型。
- dtolnay/thiserror - 结构和枚举错误类型的派生(错误)。
- tvallotton/rust-try-catch - 为rust增加try catch。
terminal
- BurntSushi/termcolor - 终端文字颜色库。
- softprops/atty - 判断是否是tty(终端)。
- clap-rs/clap - 终端命令解析库。
datetime
- chronotope/chrono - 时区感知的日期和时间处理。
- time-rs/time - 时间操作库(format、parse、add、sub)。
template
- freestrings/jsonpath - JSON Path 是用于在 JSON 数据结构中定位和提取数据。它提供了一些基本的运算符和函数(如比较运算、逻辑运算、取反运算、筛选函数、数学函数等),但它不支持对数值进行加、减、乘、除等运算。
- stedolan/jq - 👍 非常强大的模版引擎。支持各种运算与表达式。jaq - rust 版本
- djc/askama - 编译时模板引擎 。因编译成代码,避免解析和执行模板的开销,性能更高。可使用Rust表达式和语法。
- sunng87/handlebars-rust - 运行时模板引擎,在运行时被解析和执行。类似传统的模板引擎语言,如Mustache。不支持运算。可自定义表达式。
askama 和 handlebars-rust 支持模板继承、条件语句和循环、自定义过滤器。
如果需要更快速,更紧凑,更灵活的模板引擎,Askama 是更好的选择。
如果你更喜欢传统的模板语法和更灵活的运行时解析,则 Handlebars可能更适合。
- Keats/tera - 基于Jinja2/Django的 Rust 模板引擎。支持运算。可自定义表达式。
math
- rust-random/rand - 随机数库。
- rust-num/num - Rust的数字类型库,包括bigint、complex、rational、范围迭代器、泛型整数等。
- coriolinus/num-runtime-fmt - 根据运行时确定的格式规范格式化数字。
- akubera/bigdecimal-rs - 任意精度的浮点数。
- reem/rust-ordered-float - 浮点数判断库,判断是否无穷、正弦、余弦 等计算。
- paupino/rust-decimal - 适用于财务和固定精度计算的数学计算。
- dtolnay/itoa - 将整数转换为十进制字符串。
macro
- dtolnay/paste - 在宏中将标识符粘贴在一起的灵活方法。
- upsuper/assert-impl - 断言类型的宏是否实现特征。
other
- dtolnay/dyn-clone - 克隆 trait。(#[derive(Clone)] 是克隆具体类型)
- mcarton/rust-derivative - 自定义#[drive]属性。例:debug 增加 ignore。
- rust-itertools/itertools - 👍 数组迭代器的丰富,支持非常多的常用功能。
- seanmonstar/num_cpus - 取cpu核数。
- Detegr/rust-ctrlc - ctrl + c 信号的处理(程序退出信号)。
- mrhooray/crc-rs - CRC循环冗余校核。
- swellaby/rusty-hook - git hook 管理。示例
- rhaiscript/rhai - Rust的嵌入式脚本语言。
- areweguiyet - 在 Rust 中构建用户界面UI。
- fnm - 🚀 快速简单的 Node.js 版本管理器,内置 Rust。
blog
biography
learn
- 掘金- 速读Rust权威指南
- rust基础教程
- 使用 Rust 迈出第一步 - 微软rust教程
- RustPrimer - 给初学者的Rust中文教程。
- Rust 语言圣经 👍
- 通过例子学 Rust 中文版
- doc.rust-lang.org - rust 官方的教程,社区出的翻译版本 👍
�
只运行一次
tracing = "0.1.35"
tracing-appender = "0.2.2"
tracing-bunyan-formatter = "0.3.2"
tracing-log = "0.1.3"
tracing-opentelemetry = "0.18.0"
tracing-subscriber = { version = "0.3.11", features = ["env-filter", "ansi"] }
error
thiserror = "1.0.30"
async-trait = "0.1.56"
async-recursion = "1.0.0"
futures = { version = "0.3.15", features = ["thread-pool"] }
futures-executor = "0.3.25"
tokio = { version = "1.17.0", features = ["full"] }
tokio-cron-scheduler = "0.8.3"
thread_local
checksum (SHA256)/Users/yxs/Project/pansoft/iosp-taskflow/taskflow/server/src/js_worker/cli/util/checksum.rs
either
min-max-heap
enum-as-inner
flatbuffers
prost
https://docs.rs/percent-encoding/2.3.0/percent_encoding/ utf8 编码
memmap
arc-swap
slab
memuse