* Expose the max receive message length channel argument + unittest
* `ClientError` GADT ctor => `ClientErrorResponse`, expose `ClientError`
Prior to this commit, the name `ClientError` was both:
- The name of a data constructor name for the `ClientResult` GADT
- A name of an internal sum type for capturing different kinds of client
errors
We want to expose the latter to users of the library, and so expose the latter
and rename the former.
* Remove unused `MultiWayIf` lang ext
Instead of making a blocking foreign call without a timeout, we set a
timeout of one second. This way, the thread returns in Haskell code (and
thus is interruptible) at least every second. This is useful in order to
be able to kill `Server`s, see
https://github.com/awakesecurity/gRPC-haskell/issues/22.
* Make withServer provide the actual port
Again, useful to make a server listen on any available port by giving it
port zero (for testing).
* Re-introduce check on server port
* Add port field to Server
* Style: Remove unneeded newline
* Revert changes in tests
* Squash merge from branch `joel-fix-build-issues-and-broken-tests`
* Update `proto3-wire` and `proto3-suite` refs in `stack.yaml`
* Update `proto3-wire` and `proto3-suite` refs via `cabal2nix` for `nix` builds
* Remove `compile-proto-file` from the repo, as it is now available via `proto3-suite`
* Update `proto3-suite` ref in `stack.yaml`
* Update `proto3-suite` ref via `cabal2nix` for `nix` builds
* Update `proto3-suite` and `proto3-wire` gitrevs
* Regenerate Echo and Arithmetic example modules from their respective .protos
* Fix typo
We no longer require the `--with-gcc=clang` flag and it can cause
failed builds such as the one described in #19. I tested that the
`cabal` workflow works on OS X and NixOS without this flag
* add basic tutorial, re-export client stuff in HighLevel.Generated
* add a relative link in README.md
* forgot to document the language extensions
* cabal file fixup
* more context to compile-proto-file
* haskell syntax highlighting in markdown
* link to gRPC official tutorials for basic concepts
* add a note on how to build the examples
* prominent notice of required gRPC version
* fix typo
* do some error handling, show how to run the example executables
* use mapM
* update for reorganized headers in gRPC v1.1: https://github.com/grpc/grpc/pull/7559
* update nix files
* rename all gpr_slice to grpc_slice since we can't be backwards compatible anyway
* use gRPC 1.1.4
* now compatible with gRPC 1.2.0
* use nixpkgs 17.03 to get protobuf3_2, newer proto3-* deps, fix some warnings
* another warning
* Update `proto3-suite` gitrev in `stack.yaml` to `8db2ceb8c48a3f8dc2cbdc492d1e8cbaf8b62a15`
* Update `proto3-suite` gitrev in `nix/proto3-suite.nix` to `8db2ceb8c48a3f8dc2cbdc492d1e8cbaf8b62a15`
* Regenerate `Echo.hs` via new `proto3-suite` + `compile-proto-file`
* Remove additional warnings
* Pin nixpkgs to `7ae9da426924537755ce9164fd5b5f81ce16a1c3`; minor documentation tweaks
* Remove use of `fetchgitPrivate` from `proto3-suite` toplevel pkg override attr def
You can use `nix-env` to install any derivation that outputs binaries underneath
a `bin/` directory, so we can reuse `nix-env` for installing binaries built by
this project.
* echo client/server example: dead code removal, add command line params, improve output messages
* Add nix-build result to .gitignore
* Merge echo-client and echo-server directories to echo-hs/ directory; rename main modules accordingly
* Use our protobuf compiler to generate bindings for the Echo service
* Simplify echo.proto to just one endpoint; use highlevel client/server interfaces and codegen for echo example
* Remove repetition counts and thread spawns from echo client, parameterize payload
* Update default.nix
* Use GRPC v1.01 (grpc-1.0.1-6040b47)
* Minor tweaks to GRPC request result processing (less exact matching on some StatusDetails due to GRPC rev bump)
* Update tests.patch
* release.nix fixes for building and running cabal test suite from inside the nix-shell environment
* Update build instructions
* More README updates
* Fix stack tooling and improve documentation
* Update grpc sha256, cleanup build instructions
* Whups, DYLD_LIBRARY_PATH and substituteInPlace is still needed for hydra / macos builds with no brew-installed grpc!
* PR feedback tweaks
This updates the `release.nix` to now correctly run the test suite. You can
now build and test `grpc-haskell` by running:
```
$ nix-build -A grpc-haskell release.nix
```
... and `nix-shell` has been updated, too, so that you can do `cabal`
development inside of a `nix-shell` by running:
```
$ nix-shell -A grpc-haskell.env release.nix
```
For people who prefer to use `stack` you can still just build the `grpc`
library by running:
```
$ nix-build -A grpc release.nix
```
... then pass that library as input to `stack`
* add ServiceOptions for generated servers
* drop opt prefix in ServiceOptions fields
* add default options
* tweak exports, add docs
* re-export stuff from Generated so that users need don't need to import lots of modules
* remove threaded from library -- doesn't do anything
* add defaultServiceOptions export
* more exports
* export GRPCMethodType