Skip to content

Repository files navigation

Confetti

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.

Build Status  Documentation

Example

# 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.

Language Features

Installation

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.

Local Development

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.

Documentation

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.

License

MIT License. See LICENSE for details.

About

An unopinionated configuration language.

Resources

Stars

75 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages