Rust 烹饪书

这个Rust 烹饪书是一套简单的例子,它演示了如何使用 Rust 生态系统的箱子,作为完成常见编程任务的良好实践。

了解 Rust 烹饪书 更多,包括如何阅读这本书的提示、如何使用示例,以及约定好的注释风格。

贡献

这个项目的目的是,让新的 Rust 程序员能够容易做出贡献,帮个小忙,并且是一个与 Rust 社区接触的简单方法。本库十分欢迎帮助。详情见CONTRIBUTING.md.

算法

食谱箱子分类
生成,随机数rand-badgecat-science-badge
生成,范围内的随机数rand-badgecat-science-badge
生成,具有给定分布的随机数rand-badgecat-science-badge
生成,自定义类型的随机值rand-badgecat-science-badge
从一组字母字符,创建随机密码rand-badgecat-os-badge
从一组用户定义的字符,创建随机密码rand-badgecat-os-badge
排序一个,整数的 vectorstd-badgecat-science-badge
排序一个,浮点的 vectorstd-badgecat-science-badge
排序一个,结构的 vectorstd-badgecat-science-badge

命令行

食谱箱子分类
解析命令行参数clap-badgecat-command-line-badge
ANSI 终端ansi_term-badgecat-command-line-badge

压缩

食谱箱子分类
解压缩 一个 tarballflate2-badge tar-badgecat-compression-badge
将一个目录压缩为 tarballflate2-badge tar-badgecat-compression-badge
从路径中删除前缀时,解压缩一个 tarballflate2-badge tar-badgecat-compression-badge

并发性

食谱箱子类别
生成一个短命线程crossbeam-badgecat-concurrency-badge
保持全局可变状态lazy_static-badgecat-rust-patterns-badge
并发计算所有 *.iso 文件的 SHA1 和threadpool-badge walkdir-badge num_cpus-badge ring-badgecat-concurrency-badgecat-filesystem-badge
将绘制分形工作,分派到线程池threadpool-badge num-badge num_cpus-badge image-badgecat-concurrency-badgecat-science-badgecat-rendering-badge
并行,改变数组的元素rayon-badgecat-concurrency-badge
如果集合的任何或所有元素,与给定物匹配,则并行测试rayon-badgecat-concurrency-badge
并行,使用给定物搜索项rayon-badgecat-concurrency-badge
并行,排序 vectorrayon-badge rand-badgecat-concurrency-badge
并行,缩小地图rayon-badgecat-concurrency-badge
并行,生成 JPG 缩略图rayon-badge glob-badge image-badgecat-concurrency-badgecat-filesystem-badge

密码学

食谱箱子类别
计算文件的 SHA-256 码ring-badge data-encoding-badgecat-cryptography-badge
使用 HMAC 码,签名并验证消息ring-badgecat-cryptography-badge
用 PBKDF2 对密码,进行 加盐(Salt) 和 哈希 操作ring-badge data-encoding-badgecat-cryptography-badge

数据结构

食谱箱子类别
定义表示为位字段的类型,并操作bitflags-badgecat-no-std-badge

数据库

食谱箱子类别
创建 sqlite 数据库rusqlite-badgecat-database-badge
插入和查询数据rusqlite-badgecat-database-badge
在 Postgres 数据库中,创建表[![postgres-badge]][postgres]cat-database-badge
插入和查询数据[![postgres-badge]][postgres]cat-database-badge
综合数据[![postgres-badge]][postgres]cat-database-badge

日期和时间

食谱箱子类别
测量已用时间std-badgecat-time-badge
执行,检查日期和时间的计算chrono-badgecat-date-and-time-badge
将本地时间,转换为其他时区chrono-badgecat-date-and-time-badge
检查日期和时间chrono-badgecat-date-and-time-badge
将日期转换为 Unix 时间戳,或相反chrono-badgecat-date-and-time-badge
显示格式化的日期和时间chrono-badgecat-date-and-time-badge
将字符串解析为 DateTime 结构chrono-badgecat-date-and-time-badge

开发工具

调试

食谱箱子类别
将调试消息,记录到控制台log-badge env_logger-badgecat-debugging-badge
将错误消息,记录到控制台log-badge env_logger-badgecat-debugging-badge
记录到 stdout ,而不是 stderrlog-badge env_logger-badgecat-debugging-badge
使用自定义记录器,记录消息log-badgecat-debugging-badge
记录到 Unix 系统日志log-badge syslog-badgecat-debugging-badge
启用每个模块的日志级别log-badge env_logger-badgecat-debugging-badge
使用自定义环境变量,设置日志记录log-badge env_logger-badgecat-debugging-badge
在日志消息中,包含时间戳log-badge env_logger-badge chrono-badgecat-debugging-badge
将消息记录,到自定义位置log-badge log4rs-badgecat-debugging-badge

版本控制

食谱箱子类别
解析,并增加版本字符串semver-badgecat-config-badge
分析,复杂版本字符串semver-badgecat-config-badge
检查给定版本,是否为预发布版本semver-badgecat-config-badge
查找,满足给定范围的最新版本semver-badgecat-config-badge
检查外部命令版本的兼容性semver-badgecat-text-processing-badge cat-os-badge

构建时

食谱箱子类别
静态编译,并链接到捆绑的 C 库cc-badgecat-development-tools-badge
编译,并链接到捆绑的 C++库cc-badgecat-development-tools-badge
自定义设置时,编译 C 库cc-badgecat-development-tools-badge

编码

食谱箱子类别
百分比编码(URL 编码)一个字符串url-badgecat-encoding-badge
将字符串,编码为 application/x-www-form-urlencodedurl-badgecat-encoding-badge
编码和解码十六进制data-encoding-badgecat-encoding-badge
对 base64 进行编码和解码base64-badgecat-encoding-badge
读取 csv 记录csv-badgecat-encoding-badge
读取具有不同分隔符的 csv 记录csv-badgecat-encoding-badge
筛选与断言匹配的 csv 记录csv-badgecat-encoding-badge
使用 serde ,处理无效的 csv 数据csv-badge serde-badgecat-encoding-badge
将记录序列化为 csvcsv-badgecat-encoding-badge
使用 serde ,将记录序列化为 csvcsv-badge serde-badgecat-encoding-badge
转换 csv 文件的一列信息csv-badge serde-badgecat-encoding-badge
序列化和反序列化,非结构化 JSONserde-json-badgecat-encoding-badge
反序列化,一个 Toml 配置文件toml-badgecat-encoding-badge
以小端序顺序,读取和写入整数byteorder-badgecat-encoding-badge

文件系统

食谱箱子类别
从文件中,读取字符串行std-badgecat-filesystem-badge
避免写入和读取,同一文件same_file-badgecat-filesystem-badge
随机使用内存映射,访问文件memmap-badgecat-filesystem-badge
过去 24 小时内,修改过的文件名std-badgecat-filesystem-badge cat-os-badge
查找给定路径的循环same_file-badgecat-filesystem-badge
递归查找,重复的文件名walkdir-badgecat-filesystem-badge
递归查找,具有给定断言的所有文件walkdir-badgecat-filesystem-badge
跳过点(隐藏)文件,遍历目录walkdir-badgecat-filesystem-badge
在给定深度(目录),递归计算文件大小walkdir-badgecat-filesystem-badge
递归查找,所有 PNG 文件glob-badgecat-filesystem-badge
查找具有给定模式的所有文件,忽略文件名大小写glob-badgecat-filesystem-badge

硬件支持

食谱箱子类别
检查逻辑 CPU 的核数num_cpus-badgecat-hardware-support-badge

内存管理

食谱箱子类别
声明,延迟计算的常量lazy_static-badgecat-caching-badge cat-rust-patterns-badge

网络

食谱箱子类别
侦听,未使用的端口 TCP/IPstd-badgecat-net-badge

操作系统

食谱箱子类别
运行外部命令,并处理 stdoutregex-badgecat-os-badge cat-text-processing-badge
运行传递到 stdin 的外部命令,并检查错误代码regex-badgecat-os-badge cat-text-processing-badge
运行管道的外部命令std-badgecat-os-badge
将子进程的 stdout 和 stderr ,重定向到同一文件std-badgecat-os-badge
连续处理,子进程的输出std-badgecat-os-badgecat-text-processing-badge

科学类

数学

食谱箱子类别
vector 和ndarray-badgecat-science-badge
vector 范数ndarray-badgecat-science-badge
矩阵相加ndarray-badgecat-science-badge
矩阵乘法ndarray-badgecat-science-badge
用 vector 和矩阵,相乘一个标量ndarray-badgecat-science-badge
反转矩阵[![nalgebra-badge]][nalgebra]cat-science-badge
计算三角形的边长std-badgecat-science-badge
验证 tan 等于 sin 除以 cosstd-badgecat-science-badge
地球两点之间的距离std-badgecat-science-badge
创建复数num-badgecat-science-badge
复数相加num-badgecat-science-badge
复数的数学函数num-badgecat-science-badge
集中趋势度量std-badgecat-science-badge
计算标准偏差std-badgecat-science-badge
大整数num-badgecat-science-badge

文本处理

食谱箱子类别
收集 Unicode 字形[![unicode-segmentation-badge]][unicode-segmentation]cat-encoding-badge
从电子邮件地址,提取登录信息并验证regex-badge lazy_static-badgecat-text-processing-badge
从文本中,提取独一的#标签列表regex-badge lazy_static-badgecat-text-processing-badge
从文本中,提取电话号码regex-badgecat-text-processing-badge
通过匹配多个正则表达式,筛选日志文件regex-badgecat-text-processing-badge
将一个文本模式的所有出现项,替换为另一个模式。regex-badge lazy_static-badgecat-text-processing-badge
为一个自定义struct,实现FromStrtraitstd-badgecat-text-processing-badge

网页编程

刮擦网页

食谱箱子类别
从网页 HTML 中,提取所有链接reqwest-badge select-badgecat-net-badge
检查网页,是否有断开的链接reqwest-badge select-badge url-badgecat-net-badge
从 Mediawiki markup 中,提取所有独一链接reqwest-badge regex-badgecat-net-badge

统一资源位置(URL)

食谱箱子类别
将字符串的一个 URL,解析为Url类型url-badgecat-net-badge
通过移除路径段,创建一个 base URLurl-badgecat-net-badge
从 base URL ,创建新的 URLurl-badgecat-net-badge
提取 URL 源(方案名/主机/端口)url-badgecat-net-badge
从 URL 中,删除片段标识符和查询对url-badgecat-net-badge

媒体类型(MIME)

食谱箱子类别
从字符串,获取 MIME 类型mime-badgecat-encoding-badge
从文件名,获取 MIME 类型mime-badgecat-encoding-badge
解析 HTTP 响应的 MIME 类型mime-badge reqwest-badgecat-net-badge cat-encoding-badge

客户端

食谱箱子类别
发出 HTTP GET 请求reqwest-badgecat-net-badge
查询 GitHub APIreqwest-badge serde-badgecat-net-badge cat-encoding-badge
检查 API 资源,是否存在reqwest-badgecat-net-badge
使用 GitHub API ,创建和删除 Gistreqwest-badge serde-badgecat-net-badge cat-encoding-badge
使用一个(具备)分页的 RESTful APIreqwest-badge serde-badgecat-net-badge cat-encoding-badge
将文件下载到临时目录reqwest-badge tempdir-badgecat-net-badge cat-filesystem-badge
使用 HTTP range 标头,进行部分下载reqwest-badgecat-net-badge
POST 文件,到 paste.rs reqwest-badgecat-net-badge