reason-export alternatives and similar packages
Based on the "Web" category.
Alternatively, view reason-export alternatives based on common mentions on social networks and blogs.
-
scotty
Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository) -
yesod-persistent
A RESTful Haskell web framework built on WAI. -
haskell-bitmex-rest
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
swagger-petstore
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
servant
Main repository for the servant libraries — DSL for describing, serving, querying, mocking, documenting web applications and more! -
neuron
Future-proof note-taking and publishing based on Zettelkasten (superseded by Emanote: https://github.com/srid/emanote) -
airship
Helium + Webmachine = Airship. A toolkit for building declarative, RESTful web apps. -
haskell-kubernetes
Haskell bindings to the Kubernetes API (via swagger-codegen) -
apecs-gloss
a fast, extensible, type driven Haskell ECS framework for games -
digestive-functors
A general way to consume input using applicative functors -
hbro
[Unmaintained] A minimal web-browser written and configured in Haskell. -
servant-elm
Automatically derive Elm functions to query servant webservices -
tagsoup
Haskell library for parsing and extracting information from (possibly malformed) HTML/XML documents -
kubernetes-client-core
Haskell client for the kubernetes API. A work in progress. -
backprop
Heterogeneous automatic differentiation ("backpropagation") in Haskell -
engine-io
A Haskell server implementation of the Engine.IO and Socket.IO (1.0) protocols -
keera-hails-reactive-htmldom
Keera Hails: Haskell on Rails - Reactive Programming Framework for Interactive Haskell applications -
ghcjs-dom
Make Document Object Model (DOM) apps that run in any browser and natively using WebKitGtk -
android-lint-summary
Prettier display of Android Lint issues
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of reason-export or a related project?
README
Reason Export
Create Reason classes and JSON encoders/decoders from Haskell DataTypes. Originally build by converting elm-export to Reason.
More docs on Hackage.
Usage
If you're using this package you almost certainly want to use servant-reason as well. There are tests in both packages that show to use this library.
Usage is trivial, derive Generic
and ReasonType
.
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
module Db where
import Reason
import GHC.Generics
data Person = Person
{ id :: Int
, name :: Maybe String
} deriving (Show, Eq, Generic, ReasonType)
Then you can expose your API:
module Main where
import Data.Proxy
import Reason
import Data.Text hiding (intercalate, map)
import Db
main :: IO ()
main = do
let code = defReasonImports :
toReasonTypeSource (Proxy :: Proxy Person) :
toReasonDecoderSource (Proxy :: Proxy Person) :
writeFile "client/Types.re" $ intercalate "\n\n" $ map unpack code
That's about it. Just do this for every type that you want to expose. You can make encoders as well, and configure various settings. See Hackage.
Reason setup
The generated Reason code needs access to @glennsl/bs-json. Get the latest install instructions from there, but at the time of writing these were:
npm install --save @glennsl/bs-json
Then add @glennsl/bs-json
to bs-dependencies
in your bsconfig.json
:
{
...
"bs-dependencies": ["@glennsl/bs-json"]
}