Rust 烹饪书

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

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

贡献

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

算法

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

命令行

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

压缩

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

并发性

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

密码学

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

数据结构

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

数据库

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

日期和时间

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

开发工具

调试

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

版本控制

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

构建时

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

编码

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

文件系统

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

硬件支持

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

内存管理

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

网络

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

操作系统

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

科学类

数学

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

文本处理

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

网页编程

刮擦网页

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

统一资源位置(URL)

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

媒体类型(MIME)

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

客户端

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