Our great sponsors
-
terraform
Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Have you considered providing additional schema config options? Something that is more expressive and easier to write by . I can imagine something homegrown, or things like Cue, Dhall or HCL.
TL;DR: We've just launched our first 100% Rust open-source project synth- a declarative data generator. Think of it as a crossbreed between faker and Terraform. We'd love to hear what you think about it! Is it a good idea? A bad idea?
We're OpenQuery, a young open-source startup based in London. We recently got our first significant round of venture capital funding after going through YCombinator last summer. As a co, we try to find great solutions to very common developer workflow problems. We've decided to start by solving messy test data harnesses with a clean declarative test data generator. Our project is called synth. If you want a quick overview of what synth does, the docs are the best place to start.
Yes! I really like HCL. There are a couple of HCL parsers for Rust, for example this crate but when I tried them out (admittedly almost a year ago for a different project) I couldn't get it to behave (this could be me and not the crate). I haven't checked out Cue or Dhall but will do.
The end-state is as you said is something home-grown. Hopefully as Synth takes off and we add advanced features we'll need an expressive DSL. I've looked at implementing something like this with lalrpop and it's on the roadmap :)