# rust_lib
`rust_lib` 是一个 Rust 基础功能整合库,功能领域对标 Java JDK 与 C#/.NET
标准库自带的方法和类型。
它以统一模块导出 Rust `std` 和常见成熟 crate,覆盖集合、文本、日期时间、
序列化、国际化、数据库、文件与 I/O、网络、并发、异步、数学、压缩、安全、日志和系统工具。
本库不重复实现底层算法,而是提供稳定、易发现的 Rust 风格入口。
## 使用
默认启用常用轻量功能:
```toml
[dependencies]
lib = "0.0.4"
```
需要完整能力时:
```toml
[dependencies]
lib = { version = "0.0.4", features = ["full"] }
```
```rust
use lib::prelude::*;
use lib::{serialization::json, text::regex};
let words = regex::Regex::new(r"\w+")?;
let value = json::json!({ "count": words.find_iter("hello rust").count() });
assert_eq!(value["count"], 2);
# Ok::<(), Box<dyn std::error::Error>>(())
```
## 功能模块
| `core`、`prelude` | `java.lang` / `System` | 常用基础类型与 trait |
| `collections` | `java.util` / Collections、LINQ | 标准集合、`itertools`、`indexmap`、`dashmap` |
| `text` | `String`、Regex / `System.Text` | 字符串、正则、Unicode |
| `time` | `java.time` / `DateTime` | `std::time`、`chrono` |
| `serialization` | JSON、XML / Serialization | `serde`、JSON、TOML、XML |
| `globalization` | `java.text`、Locale / Globalization | ICU4X 区域、排序、格式化与 Unicode |
| `encoding` | Base64、URI、UUID | Base64、Hex、URL、UUID |
| `fs`、`io` | `java.io`、NIO / `System.IO` | 文件、路径、遍历、监听、缓冲区 |
| `net` | `java.net`、HTTP Client / `System.Net` | TCP/UDP、HTTP、URL、TLS |
| `database` | JDBC / ADO.NET | SQLx、PostgreSQL、MySQL、SQLite、迁移 |
| `sync`、`task` | Concurrent、Future / Tasks | 线程、锁、通道、并行、异步运行时 |
| `math`、`rand` | `java.math`、Random / Numerics、Random | 大整数、十进制、随机数 |
| `compression` | ZIP/JAR / Compression | ZIP、gzip/DEFLATE、TAR |
| `security` | JCA/JCE / Cryptography | 密码学与 TLS 基础组件 |
| `logging` | `java.util.logging` / Diagnostics | `log`、`tracing` |
| `system`、`process`、`cli` | Runtime、Process / Environment | 系统信息、进程、动态库、参数解析 |
第三方能力均由 feature 控制;可单独启用 `network`、`async`、`filesystem`
等功能,也可使用 `full` 一次启用全部。
这里的“对标”指覆盖常见标准库功能领域,并保持 Rust 的所有权、trait、迭代器和
`Result` 设计。JVM/CLR 运行时、反射、GUI 和编译器工具链不做跨语言逐项复刻。
## 许可证
本项目采用 `MIT OR Apache-2.0` 双许可证,使用者可任选其一。