summaryrefslogtreecommitdiff
path: root/README.md
blob: f941909056fd37b1691c0ca9668fa64ec12c84cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Coalpit

Coalpit is a library for building command-line program
interfaces. They are like command-line user interfaces, but for
programs.

Given a type, it derives instances to print and parse it as
command-line arguments. The resulting serialization wouldn't be as
nice as that of
e.g.
[optparse-generic](https://hackage.haskell.org/package/optparse-generic),
but the aim here is to handle arbitrary types.

The goal is to
faciliate
[the KISS principle](https://en.wikipedia.org/wiki/KISS_principle)
preservation for interfaces between system components in certain
(rather [unixy](https://en.wikipedia.org/wiki/Unix_philosophy))
architectures. Described in more detail in
the
[command-line program interface](https://defanor.uberspace.net/notes/command-line-program-interface.html) note.

Warning: it is currently possible to run into ambiguity by defining a
recursive structure with optional named elements.

Far from production-ready yet, merely a prototype.