harpoon

HTTP Client

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:25

Installation

nimble install harpoon
choosenim install harpoon
git clone https://github.com/juancarlospaco/harpoon

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
harpoon - - - - - - -

Source

Repository https://github.com/juancarlospaco/harpoon
Homepage https://github.com/juancarlospaco/harpoon
Registry Source nimble_official

README

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.