blob: 95e3e8d2ba36d21e54a1d45c0ad28799dcf49cde (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# Jurl
Janet Curl (secretly Jean Curl)
A libcurl easy API wrapper for Janet.
It's divided into two components: `jurl-native`, which holds the low level C interfacing, and the high level `jurl` janet wrapper.
`jurl-native` is relatively feature-complete and is now mostly in maintenance mode.
Potential improvements are:
* gate additional features behind version checks
* implement the (very) few curl_easy things still left out (mostly things that I can't think of a sane way to represent)
`jurl` is under active construction.
## Jurl
A higher level API that's currently in construction.
## Jurl-Native
`jurl-native` attempts to implement as much of libcurl's easy API in as direct a manner as possible.
In cases of bitmaps and enums (including magic numbers), they are translated as directly as possible from their C forms into keywords.
For example, `CURLOPT_TCP_FASTOPEN` becomes `:tcp-fastopen`.
Enums (and bitmap members) are translated using a prefix notation.
For example, `CURLPROXY_HTTP` becomes `:proxy/http`.
Bitmaps are translates back and forth using indexables (arrays and tuples).
For example, `CURLAUTH_BASIC | CURLAUTH_DIGEST` becomes `[:auth/basic :auth/digest]`.
|