Welcome!
rngo is a data simulation platform that streamlines many testing, development, and prototyping activities, such as:
- lower environment application state
- iterative prototyping
- property-based integration testing
- PR environments
- projected-state load testing
At the core of rngo is the API, which streams synthetic events based upon an intuitive DSL. For example, considering the following simulation spec:
seed: 1
entities:
users:
stream:
type: object
properties:
id:
type: id.integer
name:
type: person.name
posts:
stream:
type: object
properties:
id:
type: id.integer
title:
enum:
- Lorem Ipsum
- Dolor Sit Amet
- Sed Mattis Eu Erat
authorId:
type: function
expression: user.id
variables:
user:
type: reference
entity: users
It produces a deterministic SSE stream that starts like this:
event: users.create
data: {"entity":"users","offset":683878,"value":{"id": 1, "name": "Alice Jones"}}
event: users.create
data: {"entity":"users","offset":729698,"value":{"id": 2, "name": "Bob Hyland"}}
event: posts.create
data: {"entity":"posts","offset":1036600,"value":{"id": 1, "title": "Lorem Impsum"},"authorId":1}
Next Steps
Go to the Quick Start to run this simulation yourself in just a few minutes. Or skip ahead to any of the following references:
- Streams - learn all the built-in options for defining the schema and content of your entities.
- CLI - go in depth on using the CLI to manage applications, run simulations and stream the data directly into your databases.
- API - use the API directly from the language of your choice.