# DataForge **Repository Path**: YCDing/data-forge ## Basic Information - **Project Name**: DataForge - **Description**: 基于Rust的高性能随机数生成引擎。 - 200+ 内置数据规则(姓名/地址/日期/货币等) - 支持正则表达式、模式语法、自定义生成器 - 多语言数据支持(中文/英文/日文) - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-09-02 - **Last Updated**: 2025-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DataForge 🔥🧪 update at 2025-03-17 [![crates.io](https://img.shields.io/crates/v/dataforge)](https://crates.io/crates/dataforge) [![license](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue)](https://opensource.org/licenses/MIT) **高性能数据锻造工坊** - 为Rust开发者打造的随机数据生成与数据库填充解决方案 ## 📋 Prerequisites ``` nightly版本的Rust编译器 ``` ## ✨ 特性 - **闪电般快速** 🚀 - 基于Rust的高性能随机数生成引擎 - 多线程并行生成(`rayon`驱动) - 零拷贝内存管理技术 - **数据库全支持** 🗄️ - 自动生成关系型数据库测试数据(MySQL/PostgreSQL/SQLite) - 支持Schema推断与自动匹配 - 批量插入优化(10万行/秒) - **数据锻造车间** ⚒️ ``` // 生成带中文的随机地址 let address = forge!({ "省份": regions::china::province(), "城市": regex!(r"[\u4e00-\u9fa5]{2,5}市"), "街道": pattern!("{街道}{号}", 街道=rand_chinese(3..6), 号=1..200) }); ``` - 200+ 内置数据规则(姓名/地址/日期/货币等) - 支持正则表达式、模式语法、自定义生成器 - 多语言数据支持(中文/英文/日文) ## 🚀 快速开始 ### 安装 ``` cargo add dataforge ``` ### 基础使用 ```rust use dataforge::generators::*; use serde_json::json; // 生成测试用户数据 let user = json!({ "id": uuid_v4(), "name": name::zh_cn_fullname(), "age": random_int(18, 65), "email": internet::email(), "phone": number::phone_number_cn(), "address": { "province": address::zh_province(), "city": address::zh_city(), "street": address::zh_street() }, "created_at": datetime::iso8601() }); println!("{}", serde_json::to_string_pretty(&user).unwrap()); ``` ### 数据库填充 ```rust // 注意:需要启用 database 特性 // cargo add dataforge --features database use dataforge::{DataForge, Language}; // 创建数据生成器 let mut forge = DataForge::new(Language::ZhCN); // 注册自定义生成器 forge.register("product_id", || { serde_json::json!(format!("PROD-{:06}", rand::random::() % 1000000)) }); // 批量生成数据 let users: Vec<_> = (0..1000).map(|i| { json!({ "id": i + 1, "name": name::zh_cn_fullname(), "email": internet::email(), "phone": number::phone_number_cn(), "created_at": datetime::iso8601() }) }).collect(); ``` # 📚 生态扩展 dataforge-faker: 兼容Ruby Faker语法的数据生成 dataforge-sqlx: 支持sqlx异步数据库驱动 dataforge-cli: 命令行数据生成工具