Hydra is a full-fledged framework for building web services, multithreaded and concurrent applications with SQL and KV DB support. It's currently moving to the production-ready state
Go to file
Alexander Granin 1c9b6f570e Cosmetic fixes.
2019-08-31 16:17:45 +07:00
app Cosmetic fixes. 2019-08-31 16:17:45 +07:00
catalogue KV DB WIP 2019-08-12 01:37:54 +07:00
src Cosmetic fixes. 2019-08-31 16:17:45 +07:00
test/spec Hydra Framework: initial commit. 2019-05-02 00:12:50 +07:00
.ghci Hydra Framework: initial commit. 2019-05-02 00:12:50 +07:00
.gitignore Hydra Framework: initial commit. 2019-05-02 00:12:50 +07:00
LICENSE Initial commit 2019-05-02 00:15:45 +07:00
meteor_counter.cfg FT now works. New configs. 2019-05-18 15:59:22 +07:00
Notes.md Wrong way to implement process using type classes 2019-05-08 02:06:59 +07:00
package.yaml KV DB Support WIP. 2019-08-08 16:12:21 +07:00
perf_test_app.cfg MeteorCounter app updated. Free & Church versions 2019-05-17 02:39:06 +07:00
README.md Update README.md 2019-08-29 08:07:04 +03:00
Setup.hs Hydra Framework: initial commit. 2019-05-02 00:12:50 +07:00
stack.yaml Invalid block removed. 2019-08-17 18:56:32 +07:00

The Hydra Project

This project demonstrates the principles of Software Design and Architecture in pure Functional Programming. It provides a framework implemented with several different approaches for easy comparison:

  • Final Tagless
  • Free Monad
  • Church Encoded Free Monad

Hydra Framework

An all-in-one framework for writing Haskell apps which use the following features out of the box:

  • Multithreading
  • Safe STM-powered concurrency
  • Logging
  • Random data generation
  • Many others

With the framework, you can create complex applications that have a good maintainability, testability, simplicity, that have a good structure and are easy to read and change. The key principles in the framework:

  • Layered architecture
  • Separation of Business Logic, Runtime and Implementation
  • Convenient and simple to use eDSLs for Business Logic
  • Layered structure of business application: State, Domain, Business Logic