Mirror of the Rel4tion website/wiki source, view at <http://rel4tion.org>
Clone
HTTPS:
git clone https://vervis.peers.community/repos/yEzqv
SSH:
git clone USERNAME@vervis.peers.community:yEzqv
Branches
Tags
settings.mdwn
Links
- [[News]]
- [[Releases]]
- [[Forum]]
-
[[Tickets]]
[[!toc]]
Introduction
settings is a Haskell library for adding an editable settings system to your program. You define the settings tree structure, link the settings to actual Haskell values you keep in your program state, and write a UI for the user to edit and examine the settings.
The settings tree definition is separate from the values themselves, so your program logic code can access the values as usual.
The idea is somewhat similar to:
- GSettings
- git config
- Weechat’s settings system
Right now, the library provides the bare minimum: A data structure for settings. The plans are:
- A higher level interface using monads
- Persistent storage
- Safe concurrent access, e.g. what if the user edits settings while the program runs and reads them, possibly happening in separate threads or processes
- Support for shared settings between programs
- Support for global system or per-user settings storage
- Command-line, interactive terminal UI and GUI programs for editing settings
The author is busy with several other projects in parallel, so writing all of these features may take a while. However, the basics are required by other projects and will be added soon, or at least a working minimum:
- Interface using monads
- Persistent storage
Download
Releases are made to Hackage: [[!hackage settings]]. The Darcs repository containing the source is here: [[!darcshub fr33domlover/settings]].
Documentation
See the Haddock generated pages and the source itself.
Freedom
settings is free software, and is committed to software freedom and to freedom in general. It is released to the public domain using the CC0 Public Domain Dedication. See [[/freedom]].
Bugs, Ideas, Tasks and Decisions
- [[tickets]]
- [[decisions]]