Confetti is a configuration language and parser library written in C11 with no external dependencies.
Confetti is intended for human-editable configuration files. It is minimalistic, untyped, and unopinionated. Schema conformance is validated by the user application.
Confetti does not compete with JSON or XML, it competes with INI files.
# This is a comment.
probe-device eth0 eth1
user * {
login anonymous
password "${ENV:ANONPASS}"
machine 167.89.14.1
proxy {
try-ports 582 583 584
}
}
user "Joe Williams" {
login joe
machine 167.89.14.1
}Browse many more examples here.
- Can be learned in minutes
- Language grammar fits on a postcard
- Typeless design
- Unicode® conformant
- Localization friendly
Download the latest release tarball and build with
$ ./configure
$ make
$ make install
or build with CMake
$ cmake -B build
$ cmake --build build --config Release
$ cmake --install build --config Release
Code examples are available in the examples directory.
Install Python 3.12 or newer and the Audition testing framework. Clone the repository with Git and use CMake for local development and testing. Review tests/README.md for more details.
Confetti language documentation is available on its website.
The C API is documented by its man pages.
Run man confetti after installing the library or view them online.
MIT License. See LICENSE for details.