settings.mdwn 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <div class="infobox">
  2. <h2>Links</h2>
  3. <ul>
  4. <li> [[News]]
  5. <li> [[Releases]]
  6. <li> [[Forum]]
  7. <li> [[Tickets]]
  8. </ul>
  9. </div>
  10. [[!toc]]
  11. # Introduction
  12. **settings** is a Haskell library for adding an editable settings system to
  13. your program. You define the settings tree structure, link the settings to
  14. actual Haskell values you keep in your program state, and write a UI for the
  15. user to edit and examine the settings.
  16. The settings tree definition is separate from the values themselves, so your
  17. program logic code can access the values as usual.
  18. The idea is somewhat similar to:
  19. - GSettings
  20. - git config
  21. - Weechat's settings system
  22. Right now, the library provides the bare minimum: A data structure for
  23. settings. The plans are:
  24. - A higher level interface using monads
  25. - Persistent storage
  26. - Safe concurrent access, e.g. what if the user edits settings while the
  27. program runs and reads them, possibly happening in separate threads or
  28. processes
  29. - Support for shared settings between programs
  30. - Support for global system or per-user settings storage
  31. - Command-line, interactive terminal UI and GUI programs for editing settings
  32. The author is busy with several other projects in parallel, so writing all of
  33. these features may take a while. However, the basics are required by other
  34. projects and will be added soon, or at least a working minimum:
  35. - Interface using monads
  36. - Persistent storage
  37. # Download
  38. Releases are made to Hackage: [[!hackage settings]]. The Darcs repository
  39. containing the source is here: [[!darcshub fr33domlover/settings]].
  40. # Documentation
  41. See the Haddock generated pages and the source itself.
  42. # Freedom
  43. **settings** is free software, and is committed to software freedom and to
  44. freedom in general. It is released to the public domain using the CC0 Public
  45. Domain Dedication. See [[/freedom]].
  46. # Bugs, Ideas, Tasks and Decisions
  47. - [[tickets]]
  48. - [[decisions]]