harpoon

HTTP Client


Keywords
http, curl, client, async, high-performance, http-client, https, network, nim, nim-lang
License
MIT
Install
nimble install harpoon

Documentation

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.
  • 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.