package cohttp

  1. Overview
  2. Docs

Description

Join the chat at https://gitter.im/mirage/ocaml-cohttp

Cohttp is an OCaml library for creating HTTP daemons. It has a portable HTTP parser, and implementations using various asynchronous programming libraries:

  • Cohttp_lwt_unix uses the Lwt library, and specifically the UNIX bindings.
  • Cohttp_async uses the Async library.
  • Cohttp_lwt exposes an OS-independent Lwt interface, which is used by the Mirage interface to generate standalone microkernels (see the mirage-http repository).
  • Cohttp_lwt_xhr compiles to a JavaScript module that maps the Cohttp calls to XMLHTTPRequests. This is used to compile OCaml libraries like the GitHub bindings to JavaScript and still run efficiently.

You can implement other targets using the parser very easily. Look at the IO signature in lib/s.mli and implement that in the desired backend.

You can activate some runtime debugging by setting COHTTP_DEBUG to any value, and all requests and responses will be written to stderr. Further debugging of the connection layer can be obtained by setting CONDUIT_DEBUG to any value.

Tags

org:mirage org:xapi-project

Published: 25 Jul 2017

Dependencies (15)

  1. jsonm build
  2. logs
  3. fmt
  4. magic-mime
  5. base64 >= "2.0.0" & < "3.0.0"
  6. stringext
  7. ppx_sexp_conv >= "v0.9.0"
  8. ppx_fields_conv >= "v0.9.0"
  9. sexplib
  10. fieldslib
  11. uri >= "1.9.0" & < "2.0.0"
  12. re
  13. jbuilder >= "1.0+beta10"
  14. base-bytes
  15. ocaml >= "4.03.0" & < "4.06.0"

Dev Dependencies (2)

  1. alcotest with-test
  2. ounit with-test

Used by (64)

  1. aws-async
  2. aws-lwt
  3. aws-s3 >= "2.0.0" & < "4.0.0"
  4. awsm
  5. awsm-codegen
  6. azblob-async
  7. azure-cosmos-db
  8. c3
  9. calculon-web < "0.5"
  10. canary
  11. cca >= "0.6.2"
  12. cohttp-async < "1.0.0" | >= "1.1.1" & < "2.2.0"
  13. cohttp-lwt < "1.0.0"
  14. cohttp-lwt-jsoo != "1.0.0" & < "1.1.1"
  15. cohttp-mirage >= "2.0.0" & != "2.1.1" & < "2.5.5"
  16. cohttp-top < "1.0.0" | >= "1.1.0" & < "2.2.0"
  17. comby-semantic
  18. cowabloga >= "0.0.9" & != "0.2.2"
  19. datakit < "0.10.0"
  20. dropbox >= "0.2"
  21. frenetic >= "3.3.0" & < "5.0.5"
  22. git = "1.4.10" | >= "1.5.0" & < "1.10.0"
  23. git-cohttp
  24. git-paf < "3.5.0"
  25. git-unix < "1.10.0"
  26. github >= "3.0.1" & < "4.4.0"
  27. github-jsoo >= "3.0.1" & < "4.4.0"
  28. github-unix >= "4.2.0" & < "4.4.0"
  29. hockmd
  30. imaplet-lwt >= "0.1.3"
  31. influxdb-async
  32. influxdb-lwt
  33. iocaml < "0.4.8"
  34. ip2location
  35. ip2locationio
  36. irmin >= "0.9.0" & != "0.11.1" & < "1.0.0"
  37. irmin-cli
  38. irmin-graphql >= "2.3.0"
  39. irmin-http >= "2.3.0"
  40. irmin-mirage-git >= "2.3.0" & < "2.8.0"
  41. irmin-unix < "0.9.9" | >= "2.3.0"
  42. letsencrypt < "0.3.0"
  43. links >= "0.7.3"
  44. magic-trace
  45. mechaml >= "1.0.0"
  46. merge-queues >= "0.2.0"
  47. mirage-http = "2.0.0" | >= "3.2.0"
  48. mirage-www >= "1.1.0"
  49. nsq >= "0.2.4"
  50. ocamlapi
  51. ojs-base >= "0.3.0" & < "0.6.0"
  52. opium = "0.13.3"
  53. opium_kernel
  54. podge
  55. ppx_json_types
  56. prof_spacetime = "0.2.0"
  57. prometheus-app = "0.4"
  58. quests
  59. session-cohttp
  60. sociaml-facebook-api >= "0.4.1"
  61. transmission-rpc
  62. webmachine >= "0.4.0" & < "0.6.0"
  63. websocket = "2.10"
  64. xen-api-client >= "0.9.8" & < "0.9.14"

Conflicts

None