nccl
non-crap config language
It's as easy as five cents. Also not crap, which is kind of the point.
- key/value bindings
- flexible indentation (eat it, python!)
- inherit from existing keys
Demo
Simple
In rust:
let config = parse_file.unwrap;
let ports = config..unwrap;
assert_eq!;
config.nccl:
server
domain
example.com
www.example.com
port
80
443
root
/var/www/html
Inheritance
Nccl lets you define your own configuration to inherit from. Just use
nccl::parse_file_with
with the result from the configuration you would like
to inherit from.
inherit.nccl:
hello
world
panama
friends
doggos
sandwich
meat
bologne
ham
cheese
provolone
cheddar
inherit2.nccl:
hello
world
alaska
neighbor
friends
John
Alex
sandwich
meat
turkey
cheese
muenster
In rust:
let schemas = parse_file.unwrap;
let user = parse_file_with.unwrap;
assert_eq!;
assert_eq!;
Example config
# one major syntactical feature:
key
value
# comments too
bool one
t
bool too
false
ints
5280
thirteen
1738
dates
2017-03-21
20170321T234442+0400
2017-03-21T23:44:42+04
tomorrow
# this uses 3 spaces for the whole key
strings
are bare words
unless you want newlines
in which case:
"just\nuse quotes"
"this is still valid"
this """too"""
# this uses tabs for the whole key
lists
juan
deaux
key
value
3
false
indentation?
must use the same for top-level values
eg 2 or 4 spaces for one key
or tabs for one key