mirror of
https://github.com/corn-config/corn.git
synced 2026-07-11 03:16:05 +01:00
🌽 A simple and pain-free configuration language. Reference libcorn implementation and CLI.
- Rust 98.5%
- Shell 1.3%
- JavaScript 0.2%
|
Some checks failed
Build / test (push) Has been cancelled
Build / build (macos-latest) (push) Has been cancelled
Build / build (ubuntu-latest) (push) Has been cancelled
Build / build (windows-latest) (push) Has been cancelled
Build / build-wasm (macos-latest) (push) Has been cancelled
Build / build-wasm (ubuntu-latest) (push) Has been cancelled
Build / build-lua (lua51) (push) Has been cancelled
Build / build-lua (lua52) (push) Has been cancelled
Build / build-lua (lua53) (push) Has been cancelled
Build / build-lua (lua54) (push) Has been cancelled
Build / build-lua (luajit) (push) Has been cancelled
Build / build-lua (luajit52) (push) Has been cancelled
|
||
|---|---|---|
| .github/workflows | ||
| .idea | ||
| assets | ||
| benches | ||
| cli | ||
| scripts | ||
| src | ||
| tests | ||
| wasm-test | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| LICENSE | ||
| README.md | ||
🌽 Corn
A simple and pain-free configuration language.
Corn has been designed using inspiration from JSON and Nix to produce a language that's easy and intuitive to write, good for config files, and has a feature-set small enough you can learn it in minutes. It was born out of the following frustrations:
- JSON is not a config language, despite how often people use it as one.
- TOML is good for flat structures but gets ugly quickly with deeper objects.
- YAML is far too complex and its whitespace rules make it error-prone.
- Nix is a full-sized language and not easy to integrate.
Documentation
let {
$entry = "dist/index.js"
$author = { name = "John Smith" email = "mail@example.com" }
} in {
name = "example-package"
version = "1.0.0"
main = $entry
bin.filebrowser = $entry
private = false
author = $author
author.url = "https://example.com"
contributors = [ $author ]
scripts.build = "tsc"
scripts.run = "node dist"
dependencies = {
dotenv = "^8.2.0"
// put the rest of your deps here...
}
devDependencies.typescript = "^4.5"
config.port = 8080
config.hostname = null
}
Corn is available as libraries for Rust, Go, Lua, and JavaScript (via WASM).
A CLI and web API are also available.
Editor plugins are available for JetBrains IDEs, VS Code and Neovim.