seedfaker
Health Uyari
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- rm -rf — Recursive force deletion command in .github/workflows/release.yml
- rm -rf — Recursive force deletion command in benchmarks/compare.sh
- rm -rf — Recursive force deletion command in benchmarks/determinism.sh
Permissions Gecti
- Permissions — No dangerous permissions requested
This tool is a deterministic synthetic data generator designed to create realistic, localized, and intentionally noisy test records. It supports over 200 fields across 68 locales and is available as a CLI, MCP server, and libraries for multiple programming languages.
Security Assessment
The tool does not request dangerous permissions and appears to generate data entirely offline without making suspicious network requests or accessing sensitive user data. However, the codebase contains recursive force deletion commands (`rm -rf`) inside shell scripts and GitHub release workflows. While common in build scripts, these commands can be risky if modified or executed in unexpected environments. No hardcoded secrets were detected. Overall risk is rated as Medium due to the unsafe shell execution flags.
Quality Assessment
The project is actively maintained, with the most recent code push occurring today. It features comprehensive documentation and a wide variety of installation options. On the downside, community visibility and trust are currently very low, evidenced by only 5 GitHub stars. Additionally, the repository lacks a clearly defined open-source license (marked as NOASSERTION), which introduces potential legal ambiguity and restricts its suitability for enterprise or commercial integration.
Verdict
Use with caution — the tool is active and highly capable, but the lack of a clear license and the presence of unsafe shell commands warrant a careful security review before integrating into sensitive workflows.
Deterministic synthetic data generator for realistic, correlated, and noisy test records across 68 locales. Rust CLI/Python/Node.js/Browser WASM/Go/PHP/Ruby/MCP
seedfaker
0.1.0-alpha.25 · sf0-158dc9f79ce46b43
Deterministic synthetic data generator. 200+ fields, 68 locales, native scripts.
CLI (crates.io) · CLI (npm) · Python · Node.js · Browser/WASM · Go · PHP · Ruby · MCP
$ seedfaker name email phone --ctx strict --locale en -n 5 --seed hero --until 2025
Janet Marsh [email protected] +1 (957) 226-4272
Emma Hines [email protected] (779) 640-3402
Amy Schwartz [email protected] +1-566-391-4136
Ronald Elliott [email protected] 557-470-1277
Cruz Hoffman [email protected] (432) 491-2668
Same seed = identical output. Adding or removing fields does not change existing columns.
Install
brew install opendsr-std/tap/seedfaker # CLI (macOS / Linux)
cargo install seedfaker # CLI (from source)
npm install -g @opendsr/seedfaker-cli # CLI (npm)
pip install seedfaker # Python
npm install @opendsr/seedfaker # Node.js
npm install @opendsr/seedfaker-wasm # Browser (WASM)
go get github.com/opendsr-std/seedfaker-go # Go
composer require opendsr/seedfaker # PHP
gem install seedfaker # Ruby
What it does
Generation
200+ fields across 17 groups with modifiers, ranges, and transforms. 68 locales with native scripts:
$ seedfaker phone:e164 amount:usd credit-card:space -n 3 --seed readme --until 2025
+47412578114 $793.66 3715 236662 87984
+3118148237758 $123.30 4174 0785 8323 6433
+4901707888425 $473.87 3736 553912 88602
$ seedfaker name -l be --abc native -n 3 --seed readme --until 2025
Лявон Леўшкін
Валянціна Асіпенка
Камілія Анікееў
$ seedfaker name -l ja --abc native -n 3 --seed readme --until 2025
石本 和彦
楠木 康夫
川田 朋恵
Data quality
--ctx strict locks all fields in a record to one identity — email follows name, phone matches locale:
$ seedfaker name email phone --ctx strict --locale en -n 3 --seed docs --until 2025
Eric Martin [email protected] 498-944-8646
Rayyan Shelton [email protected] 584-542-1839
Kimberly Harvey [email protected] 439-347-4269
--corrupt corrupts values — OCR errors, mojibake, truncation, field swaps:
$ seedfaker name email --corrupt mid -n 5 --seed demo --until 2025
Paulina Laca [email protected]
Irene MichaelidesFmfL Irene MichaelidesFm fL [email protected]
Elv!ra C@stro Gonz@13z [email protected]
Workflows
Expressions — arithmetic between columns:
$ seedfaker price=amount:1..500:plain qty=integer:1..20 "total=price*qty" --seed shop --format csv -n 5 --until 2025
price,qty,total
424.49,14,5942.86
459.67,3,1379.01
309.44,12,3713.28
Templates — free-form output with conditionals and loops:
$ seedfaker name email -t '{{name}} <{{email}}>' --seed demo -n 3 --until 2025
Paulina Laca <[email protected]>
Irene Michaelides <[email protected]>
Elvira Castro Gonzalez <[email protected]>
13 presets for common formats. Replace PII in existing data. Stream to pipes:
seedfaker run nginx -n 0 --rate 5000 --seed demo | kafka-console-producer --topic logs
seedfaker name email --format sql=users -n 10000 --seed ci --until 2025 | psql mydb
Determinism
Each field is independently derived from (seed, record_number, field_name). Adding field B does not change field A. Output format does not affect values.
--until defaults to current time. Pin it with --seed for reproducibility:
seedfaker name email --seed demo --until 2025 -n 3
# Paulina Laca [email protected]
# Run again — same output. Change seed — different output.
A warning is printed when --seed is set without --until (suppress with -q). See determinism.
How it compares
| Traditional faker | seedfaker | |
|---|---|---|
| Determinism | Random by default | Byte-identical with --seed |
| Correlation | Fields independent | Email follows name, phone follows locale |
| Distribution | Uniform | Realistic (names from dictionaries, tiered amounts) |
| Data quality | Always clean | 15 corruption types, 4 levels |
| Scale | Library calls | CLI streaming, configs, SQL/CSV/JSONL/template |
| Cross-language | Language-specific | Same output: CLI = Python = Node.js = WASM = Go = PHP = Ruby |
Performance
Rust core, native bindings (PyO3, NAPI, FFI, WASM).
| Runtime | 3 fields | 10 fields | 20 fields |
|---|---|---|---|
| CLI (100K) | 0.049s | 0.142s | 0.304s |
| Python (10K) | 0.010s | 0.028s | 0.058s |
| Node.js (10K) | 0.015s | 0.064s | 0.194s |
Per-field benchmarks · CLI tiers · vs competitors · uniqueness
Documentation
| Start here | Quick start |
| CLI | Commands and flags · Determinism |
| Fields | Syntax and modifiers · Full reference |
| Configs | YAML configs · Presets · Expressions |
| Output | Templates · Annotated · Streaming |
| Data quality | Context · Corruption · Replace |
| Integrations | Library (Python, Node.js, Go, PHP, Ruby, Browser/WASM) · MCP |
Safety
Generated data is synthetic. Not for authentication, identity verification, or compliance. Passwords are deterministic — never use them for real authentication. See password modifiers.
License
MIT
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi