mirror of
https://github.com/higherkindness/mu-haskell.git
synced 2024-09-11 14:36:01 +03:00
Mu (μ) is a purely functional framework for building micro services.
avrodefines-schemasgraphqlgrpchacktoberfesthaskellmonadsmumu-graphqlmu-haskellprotocol-buffersrpcstarred-higherkindness-repostarred-repotype-leveltype-level-programming
This is a breaking change: The handler for bidirectional streams is returns two conduits now, instead of one. This enables the client to correctly tackle the concurrent nature of the client to server stream and the server to client stream. Each response in the server-to-client stream is no longer wrapped in GRpcReply, any error during parsing the stream is thrown in IO. Other connection related errors are returned in the result value of the conduit corresponding to the server-to-client Conduit. Note: The client didn't and still doesn't handle any errors that the server might indicate using headers or trailers, e.g. grpc-status or the HTTP status code. This commit also adds TODO comments to handle these. |
||
---|---|---|
.github/workflows | ||
.vscode | ||
adapter | ||
compendium-client | ||
core | ||
docs | ||
examples | ||
graphql | ||
grpc | ||
instrumentation | ||
servant/server | ||
templates | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
.stylish-haskell.yaml | ||
cabal-fmt.sh | ||
cabal.project | ||
CODEOWNERS | ||
default.nix | ||
DEVELOPMENT.md | ||
generate-haddock-docs.sh | ||
LICENSE | ||
python-test.nix | ||
README.md | ||
release-package.sh | ||
RELEASE.md | ||
run-docs.sh | ||
stack-14.yaml | ||
stack-nightly.yaml | ||
stack.yaml | ||
test-schema.sh | ||
test-templates.sh |
Mu for Haskell
This repo defines a set of libraries to write microservices in a format- and protocol-independent way. It shares the same goals as Mu for Scala, but using idiomatic Haskell and more type-level techniques.
Documentation
Contributing
This set of libraries are thought to be built using Stack. Just jump into the folder and run stack build
! The top-level stack.yaml
defines a common resolver and set of dependencies for all the packages.
If you want to contribute, please be sure to read the development guidelines first.