byoidsl
Version, currently master branch1 version
- master branchlatestJun 20, 2020
github.com/lbarasti/byoidsl
Build your own interactive DSL
Installation
# Add this to your shard.yml
dependencies:
byoidsl:
github: lbarasti/byoidsl
branch: mastermaster is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
0.34.0- License
- MIT
- Author
- lbarasti
- Target
byoidslfrom src/byoidsl.cr
Dependencies
Runtime Dependencies
README
byoidsl
This repository is a companion to a live-coding project aimed at building your own interactive DSL.
You can check out the videos here.

Installation
Clone the project, then run shards install to install the dependencies.
To package the CLI tool into an executable, run
crystal build --release src/igol_repl.cr -o igol
Using the CLI tool
You can use the CLI tool to either start the REPL or run a script.
Run ./igol --help to print the CLI help message.
REPL
To enter the REPL, you can run
crystal src/igol_cli.cr
or simply
./igol
The REPL can interpret commands to
- show the current state of the grid
- evolve the grid
- assign a pattern to a variable
- set a pattern on the grid
The REPL also supports loading scripts from a file into the REPL runtime,
with the special %load syntax
%load filepath/to/script
Try running the following yourself!
(0,2) <- .****
show
%load examples/script.igol
evolve 2;
n: ..*
(1,-2) <- n
Note. You can append ; to a DSL instruction to suppress the output.
Running scripts
To run a script, simply pass an argument to the executable, e.g.
./igol examples/script.igol
Contributing
- Fork it (https://github.com/lbarasti/byoidsl/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- lbarasti - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
master- Seen
- Jun 20, 2020
- Crystal
0.34.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/lbarasti/byoidsl
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 15, 2026
- Synced
- Aug 15, 2026
- Versions
- 1