typed-wire

by typed-wire

typed-wire / typed-wire

Language independent type-safe communication

124 Stars 11 Forks Last release: over 4 years ago (0.3.1.1) MIT License 87 Commits 11 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

typed-wire

Build Status Hackage

Intro

Hackage: typed-wire Stackage: typed-wire

Language independent type-safe communication

Motivation / WIP Notice

Here are some details on the library:

  • I wrote this because I have more and more micro-service architectures. The simplest form is a Haskell (REST-Api) Backend talking with an Elm/Purescript/... frontend. I got really tired of defining all data types in Haskell, Elm, PureScript, ... and writing JSON parsing/serialization functions for them in all languages. typed-wire attempts to solve this/my problem: It generates type definitions and matching JSON parsing/serialization for all target languages from a definition file. It can also generate API definitions, but this feature is not finished yet.
  • It's not ready yet - it is still missing some planned features, testing and documentation
  • It's used in production at one of my projects to ensure DRY type-safe communication between an Elm client and a Haskell server (www.bahn-buddy.de , german)
  • If anyone thinks this is cool, needs it too and would like to help out please shoot me an email :-)

Cli Usage: twirec

$ twirec --help
Generate bindings using typed-wire for different languages

Usage: twirec [--version] [-i|--include-dir DIR] [-e|--entrypoint MODULE-NAME] [--hs-out DIR] [--elm-out DIR] [--purescript-out DIR] Language-independent type-safe communication

Available options: -h,--help Show this help text --version Show version and exit -i,--include-dir DIR Directory to search for modules -e,--entrypoint MODULE-NAME Entrypoint for compiler --hs-out DIR Generate Haskell bindings to specified dir --elm-out DIR Generate Elm bindings to specified dir --purescript-out DIR Generate PureScript bindings to specified dir

Install

  • Using cabal:
    cabal install typed-wire
  • Using Stack:
    stack install typed-wire
  • From Source (cabal):
    git clone https://github.com/typed-wire/typed-wire.git && cd typed-wire && cabal install
  • From Source (stack):
    git clone https://github.com/typed-wire/typed-wire.git && cd typed-wire && stack build

Misc

Supported GHC Versions

  • 7.10.2

License

Released under the MIT license. (c) 2015 - 2016 Alexander Thiemann [email protected]

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.