All Projects → kowainik → Cake Slayer

kowainik / Cake Slayer

Licence: mpl-2.0
🍰🔪 Architecture of Haskell backend applications

Programming Languages

haskell
3896 projects
elm
856 projects

Projects that are alternatives of or similar to Cake Slayer

Web Skills
A visual overview of useful skills to learn as a web developer
Stars: ✭ 5,107 (+5451.09%)
Mutual labels:  architecture, backend
Software Engineer Interview Questions
A lot of questions and links to prepare yourself for an interview.
Stars: ✭ 176 (+91.3%)
Mutual labels:  architecture, backend
Awesome Scalability
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
Stars: ✭ 36,688 (+39778.26%)
Mutual labels:  architecture, backend
Systemizer
A system design tool that allows you to simulate data flow of distributed systems.
Stars: ✭ 1,219 (+1225%)
Mutual labels:  backend, architecture
Node Clean Architecture
Clean Architecture implementation written in NodeJS
Stars: ✭ 74 (-19.57%)
Mutual labels:  architecture, backend
Monday
⚡️ A dev tool for microservice developers to run local applications and/or forward others from/to Kubernetes SSH or TCP
Stars: ✭ 1,246 (+1254.35%)
Mutual labels:  architecture
Poetryclub Backend
基于 laravel + vue.js 的诗词小筑网站后台页面与后端代码
Stars: ✭ 87 (-5.43%)
Mutual labels:  backend
Cistern
Ruby API client framework
Stars: ✭ 81 (-11.96%)
Mutual labels:  backend
Node Bigpipe
A super easy, lightweight Bigpie Module for Nodejs, Express, Sails, ThinkJS with good intergration for web framework
Stars: ✭ 77 (-16.3%)
Mutual labels:  backend
Freecad
This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler. Issues are managed on our own bug tracker at https://www.freecadweb.org/tracker
Stars: ✭ 10,366 (+11167.39%)
Mutual labels:  architecture
App Test Arch
Android 单元测试、Monkey、LeakCanary测试demo项目【粗略示例】
Stars: ✭ 90 (-2.17%)
Mutual labels:  architecture
Tinyhttp
🦄 0-legacy, tiny & fast web framework as a replacement of Express
Stars: ✭ 1,259 (+1268.48%)
Mutual labels:  backend
Spring Boot Mongodb Angular Todo App
A Sample App built using Spring Boot, Angular and MongoDB
Stars: ✭ 84 (-8.7%)
Mutual labels:  backend
Java Notes
📚 计算机科学基础知识、Java开发、后端/服务端、面试相关 📚 computer-science/Java-development/backend/interview
Stars: ✭ 1,284 (+1295.65%)
Mutual labels:  backend
Bug Tracker Pern Ts
Bug Tracking app with project members support. Made with PERN stack + TypeScript.
Stars: ✭ 79 (-14.13%)
Mutual labels:  backend
Alfonz
Mr. Alfonz is here to help you build your Android app, make the development process easier and avoid boilerplate code.
Stars: ✭ 90 (-2.17%)
Mutual labels:  architecture
Suas Android
Unidirectional data flow architecture implementation for Android
Stars: ✭ 80 (-13.04%)
Mutual labels:  architecture
Fisco Bcos Doc
Document of FISCO BCOS
Stars: ✭ 86 (-6.52%)
Mutual labels:  architecture
Dailyessay
Python|Golang|Linux (关于工作中写的一些各种各样的东西)
Stars: ✭ 90 (-2.17%)
Mutual labels:  backend
Ribot Android Boilerplate Kotlin
Kotlin version of android boilerplate app that showcases architecture and libraries used at ribot http://ribot.co.uk
Stars: ✭ 85 (-7.61%)
Mutual labels:  architecture

cake-slayer

logo

Build status Hackage Stackage Lts Stackage Nightly MPL-2.0 license

cake-slayer (do not confuse with cakes-layer) is a modern and batteries-included framework for creating backend in Haskell for web-applications. It allows you to scaffold working and extensible project in minutes.

Overview

The main goal of cake-slayer is to provide a backbone for your Haskell backend. Unlike many other Haskell libraries, cake-slayer doesn't try to be as abstract as possible. It includes best-practices and makes some architecture decisions for you. On the one hand, your application should satisfy the requirements for using this framework. On the other hand, it takes care of a lot of stuff for you, so you don't need to worry about everyday problems.

A typical backend does the following:

  • Communicates with the frontend (web, mobile) via some wire format (JSON, Protocol Buffers, etc.)
  • Talks to the database
  • Authenticates and authorizes users
  • Has some background jobs

cake-slayer works exceptionally well if your application uses:

  1. PostgreSQL as database.
  2. Elm on the frontend.

The following Haskell packages have been chosen to provide the necessary functional:

Besides cake-slayer encourages (but doesn't force) to use the following libraries:

How to use?

The cake-slayer framework contains implementations of most common and useful functions. But at the same time, it provides enough flexibility to specify application-specific parts. To integrate cake-slayer smoothly into your project, you should perform the following steps:

  1. Define a type of errors your application can throw. See CakeSlayer.Error module for details.
  2. Define a monad for your application by specializing the App monad from the CakeSlayer.Monad module.
  3. Derive or implement all necessary instances for your application monad. cake-slayer provides MonadJwt and MonadTimed effects with sensible default implementations for your convenience.

And you're good to go!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].