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.