No description
Find a file
Juan Carlos 9efebc8d7b .
2022-02-09 08:16:57 -08:00
.github Create FUNDING.yml 2022-01-26 13:12:05 -08:00
bench Document 2021-07-12 16:25:54 -03:00
docs init 2021-07-12 15:13:49 -03:00
mini . 2022-02-09 08:16:57 -08:00
src Add a minified version for embededing 2022-02-03 17:01:26 -08:00
.gitignore Initial commit 2021-07-05 15:18:44 -03:00
harpoon.nimble Add a minified version for embededing 2022-02-03 16:52:38 -08:00
LICENSE Initial commit 2021-07-05 15:18:44 -03:00
README.md update 2021-10-09 04:27:10 -07:00

HTTP Harpoon: Clandestine HTTP Client.

  • Same API as stdlib HttpClient.
  • 1 file, 0 dependencies, 300 lines, pure Nim.
  • No Curl nor LibCurl dependencies.
  • Async and sync client.
  • Works with ARC and ORC.
  • Works with strictFuncs.
  • Uses Uri type for URL.
  • Response has isIpv6: bool attribute.
  • GET and POST from JSON to JSON directly.
  • downloadFile that takes openArray of URLs.
  • HTTP Headers can be compile-time immutable const.
  • Proxy support, with Auth.
  • Timeout support for Async and Sync.
  • Option to skip parsing Headers or Status or Body, if you dont need them.
  • HTTP Methods use HttpMethod enum, not strings. Status code use HttpCode not integers.
  • No heavy objects, designed as a tiny proc attached to a vanilla Socket.
  • Share a Socket with multiple clients, reuse Socket.
  • Theres no open/close functions for the client, just call get() or post().
  • Works with Threads, Tasks, and other Async implementations.
  • Uses very few symbols from stdlib, very future proof.
  • runnableExamples with doAssert for everything.
  • Documentation online.