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
2019-11-07 22:33:01 +07:00
app Renamings, demo queries 2019-10-13 01:12:12 +07:00
catalogue KV DB WIP 2019-08-12 01:37:54 +07:00
src Old SQLite-only language removed. 2019-11-07 22:33:01 +07:00
test/spec Old SQLite-only language removed. 2019-11-07 22:33:01 +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 Better support of SQL DB & beam. 2019-11-03 01:44:36 +03: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 Resolver bumped. 2019-10-01 04:14:02 +07:00
test.db Rigid Sqlite backend made working. 2019-10-03 04:50:01 +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