26 个版本 (16 个稳定版本)
5.4.0 | 2024年3月21日 |
---|---|
5.3.0 | 2022年4月8日 |
5.0.1 | 2021年10月30日 |
4.0.2 | 2021年10月29日 |
0.1.0 | 2017年6月25日 |
#34 in 配置
每月24次下载
用于 asteroid
55KB
1K SLoC
nccl
非垃圾配置语言
就像五分钱一样简单。也不是垃圾,这是关键点。
- 键/值绑定
- 灵活缩进(吃掉它,Python!)
- 合并配置
与 nickel 无关,这是一个非常酷的项目。
演示
(文档中有更全面的示例)
简单
在 Rust 中
fn main() {
let source = std::fs::read_to_string("examples/config.nccl").unwrap();
let config = nccl::parse_config(&source).unwrap();
let ports = config["server"]["port"]
.values()
.map(|port| port.parse::<u16>())
.collect::<Result<Vec<_>, _>>()
.unwrap();
assert_eq!(ports, vec![80, 443]);
}
config.nccl
server
domain
example.com
www.example.com
port
80
443
root
/var/www/html
内部,您的配置是一个树。键和值之间没有真正的区别,一切都是节点。
继承
Nccl 允许您定义继承自自己的配置。如果节点同时在两个地方存在,它将被合并。
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
parse_config_with
的结果
hello
world
panama
alaska
neighbor
friends
doggos
John
Alex
sandwich
meat
bologne
ham
turkey
cheese
provolone
cheddar
muenster
示例配置
# 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
依赖项
~0.7–1MB
~17K SLoC