second-transfer: Second Transfer HTTP/2 web server

[ bsd3, library, network ] [ Propose Tags ]

Second Transfer HTTP/2 web server

[Skip to Readme]
Versions [faq],,,,,,,,,,,,,,,,,,
Change log
Dependencies attoparsec (>=0.12), base (>=4.7 && <=4.9), base16-bytestring (>=0.1.1), binary (>=, bytestring (>=0.10.4), clock (>=0.4), conduit (>=1.2.4 && <1.3), containers (>=0.5.5), deepseq (>=1.4.1), exceptions (==0.8.*), hashable (>=1.2), hashtables (==1.2.*), hslogger (>=1.2.6), http2 (>=1.0.2), lens (>=4.7), network (==2.6.*), network-uri (==2.6.*), pqueue (>=1.3.0), SafeSemaphore (>=0.10), stm (>=2.3), text (==1.2.*), time (>=1.5.0 && <1.8), transformers (>=0.3 && <=0.5) [details]
License BSD-3-Clause
Copyright Copyright 2015, Alcides Viamontes Esquivel
Author Alcides Viamontes Esquivel
Category Network
Home page
Bug tracker
Source repo head: git clone
this: git clone
Uploaded by dsign at Sun Oct 4 05:21:45 UTC 2015
Distributions NixOS:
Downloads 4632 total (47 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]





Enable debug support


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for second-transfer-

[back to package description]

Developer README


This is an early-stage and very experimental library to create HTTP/2 servers using Haskell.

To see the package docs, please check the Hackage page or the file hs-src/SecondTransfer.hs.

Building and installing

You need Haskell GHC compiler installed (version 7.8.3 at least). You also need OpenSSL 1.0.2, since the ALPN feature and some very recent cypher-suites are needed by HTTP/2. this source distribution will try to find them at directory /opt/openssl-1.0.2, but you should be able to alter the options using cabal configure. This package uses Haskell's FFI to interface with OpenSSL.

Provided that you have all the dependencies, you should be able to just do:

$ cabal install second-transfer

Running the tests

$ cabal test

Debugging complicated scenarios

To access full debugging capabilities, for example from the test suite, use the following command from the project's directory:

$ cabal exec -- ghci -ihs-src -itests/tests-hs-src -itests/support -XCPP -Imacros/ dist/build/cbits/tlsinc.o


There is a very basic example at tests/tests-hs-src/compiling_ok.hs, and a somewhat more complicated one at examples/attempt_bust; that one shows how to do HTTP/2.0 push from the library.


Uploading documentation (provided you have access to the package in Hackage):

$ ./ second-transfer <hackage-user> <hackage-password>