drizzle
Version, currently 0.1.0-alpha1 version
- 0.1.0-alphalatestMar 7, 2019
github.com/drizzle-lang/drizzle
Drizzle is a (currently interpreted) programming language designed as something I would like to use, and used as a way to learn lots of new things.
13 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
drizzle:
github: drizzle-lang/drizzle
version: ~> 0.1.0-alphaThen run:
shards installshard.yml
- Crystal
0.25.1- License
- MIT
- Author
- freyamade
- Target
drizzlefrom src/drizzle.cr
Dependencies
This version declares no dependencies.
README

# Drizzle
Drizzle is my very own programming language, simultaneously developed as a language I would like to use and a never-ending source of things to learn.
## Name
This project was originally called *Sapphire*.
I decided to make an organisation for this project as it would surely consist of multiple projects and I really enjoy having projects grouped into Organisations.
However, when I tried to do so, I found that `sapphire` and `sapphire-lang` were both taken in terms of names, and there were a few programming language projects named *Sapphire* on GitHub.
So I felt I needed to change the name.
Being a fan of Pokémon, my first thought was *Kyogre*, the legendary from Pokémon Sapphire.
From there I thought of his ability *Drizzle*, which I thought was a nice name for my language considering I also love rain, so there you go!
(Also I already had made stickers of the logo so I had to stick with blue and stuff >.>)
## Installation
With the release of the v0.1.0 beta, I thought it handy to put in some installation instructions.
Only installation from source works at the moment, although I may put Drizzle up on the AUR at the very least sometime soon.
1. Install [Crystal](https://crystal-lang.org/reference/installation/)
2. Clone this repo
3. Build the Drizzle binary using `shards build --release`
4. *Optional* Add the binary to your path using `install bin/drizzle ~/.bin`
5. Run the `drizzle` command anywhere to start a REPL environment, or use `drizzle file.drzl` to run the code contained in the file
## Goals
The goals of the project are (in some particular order):
- Create a language with a nice syntax that I would like to use.
- Constantly learn ways to improve the language.
- Learn about the kind of work that goes into developing production grade languages.
- Eventually get Drizzle to the point where it can interpret / compile itself.
### Notes
- It would be nice if the project could maintain a side-by-side interpreter and compiler so that drizzle could have a fully functional REPL environment built into the language, or maybe provide drizzle-interpreter as a separate package or something idk
- The more I go through the interpreter book, the more I realise that translating the ANTLR parser every time I add something new might not be worth the hassle.
- However, if I can do it in a smart way, I should only have to translate the whole thing once, and figure out how to add stuff manually going forward in the same style to keep the benefits
- Could generate the parser in a different language and commit that to source control
- Then whenever I make updates, I do it in a separate branch and use the PR to update the Crystal version
## Contributing
This project is open to anyone who wants to learn anything about creating programming languages!
A goal for early stages is to keep documentation at a high enough quality that it will hopefully be easy to follow what's going on, but if not then please open an issue!
### Contributors
- [freyamade](https://github.com/freyamade): creator, designer, maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.1.0-alpha- Tagged
- Mar 7, 2019
- Commit
caef53b0e14c- Crystal
0.25.1- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/drizzle-lang/drizzle
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 13, 2026
- Synced
- Aug 13, 2026
- Versions
- 1