Giter VIP home page Giter VIP logo

application-common's Introduction

Description

Abstract way of building applications that have multiple modes of operation and configuration passed on command line and/or using configuration files.

Intention is to provide logical separation of action and configuration. Under action we understand what application will do after command line options are processed, configuration files loaded and environment variables checked. The result of all this we call (program or application) configuration.

Action has to have a Semigroup instance that provides notion how actions may change. Both, action and configuration, has to have Default instances. These together define default behaviour of an application.

For small applications this might be a little overhead. Other packages may be better for that. For more complicated and simply extensible applications this library provides very consistent way how to extend it. Adding new action is simple, changing default mode of operation is also very simple. Since action and configuration are separated changing one doesn't automatically mean that the other will have to be changed also.

External Dependencies

Building options

  • -fpedantic (disabled by default) Pass additional warning flags including -Werror to GHC during compilation.

Contributions

Pull requests, bug reports and generally contributions in any form are welcome! Please don't be afraid to contact author using GitHub or by e-mail (see .cabal file for that).

Also try to use -fpedantic flag during development and testing.

Lincense

This package is under BSD3 license, see LICENSE file for details.

All dependencies are also under the same license. See individual packages on hackage for details:

application-common's People

Contributors

trskop avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.