| Crates.io | random-data |
| lib.rs | random-data |
| version | 0.1.0 |
| created_at | 2025-08-10 15:02:48.350223+00 |
| updated_at | 2025-08-10 15:02:48.350223+00 |
| description | A library tool to generate random data of any kind. |
| homepage | |
| repository | https://github.com/t-webber/fake-data |
| max_upload_size | |
| id | 1789005 |
| size | 585,218 |
A Rust library for generating realistic random data of any kind.
Checkout the random-json crate to use this data as a CLI. It let's you choose the data you want with a dropdown dialogue in the terminal, or lets you generate big amounts of data in one go from a JSON schema!
cargo add random-data
use random_data::{DataType, DataGenerator};
fn main() {
let mut generator = DataGenerator::new();
// Generate a random address
let address = DataType::Address.random(&mut generator);
println!("Address: {address}");
// Generate a random name
let name = DataType::FirstName.random(&mut generator);
println!("Name: {name}");
// Generate a random email
let email = DataType::Email.random(&mut generator);
println!("Email: {email}");
// Generate location data
let country = DataType::Country.random(&mut generator);
let coordinates = DataType::LatitudeLongitude.random(&mut generator);
println!("Location: {country} at {coordinates}");
// Generate technical data
let ip = DataType::Ipv4.random(&mut generator);
let mac = DataType::MacAddress.random(&mut generator);
println!("Network: IP {ip} MAC {mac}");
// List all the possible data types
let list = DataType::list_str();
println!("Possible data types: {list:?}");
}
Some data types have predefined lists of values. You can access these lists:
use random_data::{DataGenerator, DataType};
let mut generator = DataGenerator::new();
// Check if a data type has a predefined list
if let Some(values) = DataType::Month.values() {
println!("Available months: {:?}", values);
}
// Formula-based types return None
assert!(DataType::Address.values().is_none());
// Generate and verify
let month = DataType::Month.random(&mut generator);
let all_months = DataType::Month.values().unwrap();
assert!(all_months.contains(&month.as_ref()));
The library includes region-specific generators:
use random_data::{DataGenerator, DataType};
let mut generator = DataGenerator::new();
// UK-specific data
let uk_address = DataType::UkAddress.random(&mut generator);
let uk_postcode = DataType::UkPostCode.random(&mut generator);
let uk_phone = DataType::UkPhoneNumber.random(&mut generator);
// French-specific data
let french_address = DataType::FrenchAddress.random(&mut generator);
let french_postcode = DataType::FrenchPostCode.random(&mut generator);
let french_phone = DataType::FrenchPhoneNumber.random(&mut generator);
If you don't want all the data to be loaded in your binary, you can use the feature flags to disable those you don't want.