Packages
caffeine_lang
6.3.1
6.3.1
6.3.0
6.2.2
6.2.1
6.2.0
6.1.2
6.1.1
6.1.0
6.0.0
5.6.0
5.5.0
5.4.4
5.4.3
5.4.2
5.4.1
5.4.0
5.3.0
5.2.0
5.1.1
5.1.0
5.0.12
5.0.11
5.0.10
5.0.8
5.0.7
5.0.6
5.0.5
5.0.4
5.0.1
5.0.0
4.10.0
4.9.0
4.8.3
4.8.2
4.8.1
4.8.0
4.7.9
4.7.8
4.7.7
4.7.6
4.7.5
4.6.7
4.6.6
4.6.5
4.6.4
4.6.3
4.6.2
4.6.0
4.5.1
4.5.0
4.4.4
4.4.3
4.4.1
4.4.0
4.3.7
4.3.6
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.0.2
1.0.1
0.1.0
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.2
0.0.1
A compiler for generating reliability artifacts from service expectation definitions.
Current section
Files
Jump to
Current section
Files
caffeine_lang
README.md
README.md
# caffeine_lang
<div align="center">
<img src="images/temp_caffeine_icon.png" alt="Caffeine Icon" width="250" height="250">
[](https://hex.pm/packages/caffeine_lang)
[](https://github.com/Brickell-Research/caffeine_lang/actions/workflows/test_caffeine.yml)
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://gleam.run/)
The pure compiler core for the [Caffeine](https://caffeine-lang.run) DSL. It generates reliability SLOs (Terraform for Datadog) from service expectation definitions. The vendor abstraction (`Vendor` enum, `Platform` registry, multi-vendor compiler dispatch) is in place so additional vendors can be added by registering a new `Platform` and generator module.
</div>
***
## Usage
### As a Gleam dependency
```toml
# gleam.toml
[dependencies]
caffeine_lang = ">= 6.3.1 and < 6.3.1"
```
```gleam
import caffeine_lang/compiler
let result = compiler.compile_from_strings(blueprints, expectations, output_path)
```
### In the browser
```javascript
import { compile_from_strings } from "./caffeine-browser.js";
const result = compile_from_strings(blueprintsJson, expectationsJson, "org/team/service.json");
```
## Looking for the CLI or LSP?
The installable binary (CLI + Language Server) lives in the [`caffeine`](https://github.com/Brickell-Research/caffeine) repo:
```bash
brew tap brickell-research/caffeine
brew install caffeine_lang
```
## Development
```bash
gleam test # Run tests (Erlang target)
gleam test --target javascript # Run tests (JavaScript target)
make ci # lint + build + test (both targets)
```
## Learn more
- [Website](https://caffeine-lang.run)
- [Hex package](https://hex.pm/packages/caffeine_lang)
- [CLI & LSP repo](https://github.com/Brickell-Research/caffeine)