You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Zurl is an HTTP and WebSocket client daemon with a ZeroMQ interface. Send it a message to make an HTTP request.
10
8
@@ -35,13 +33,11 @@ Zurl can also make sense as part of a greater ZeroMQ-based architecture, where y
35
33
36
34
See [Fun With Zurl](http://blog.fanout.io/2014/02/18/fun-with-zurl-the-http-websocket-client-daemon/) for some wild possibilities that a message-oriented HTTP client daemon can bring.
37
35
38
-
License
39
-
-------
36
+
## License
40
37
41
38
Zurl is offered under the GNU GPL. See the COPYING file.
42
39
43
-
Features
44
-
--------
40
+
## Features
45
41
46
42
* Request HTTP and HTTPS URLs
47
43
* Connect to WS and WSS URLs for WebSockets
@@ -52,15 +48,13 @@ Features
52
48
* Packet format can be JSON or TNetStrings
53
49
* Set access policies (e.g. block requests to 10.*)
54
50
55
-
Requirements
56
-
------------
51
+
## Requirements
57
52
58
53
* qt >= 5.2
59
54
* libzmq >= 2.0
60
55
* libcurl >= 7.20
61
56
62
-
Setup
63
-
-----
57
+
## Setup
64
58
65
59
If accessing from Git, be sure to pull submodules:
66
60
@@ -77,8 +71,7 @@ Run:
77
71
cp zurl.conf.example zurl.conf
78
72
./zurl --verbose --config=zurl.conf
79
73
80
-
Message Format
81
-
--------------
74
+
## Message Format
82
75
83
76
Requests and response messages are encoded in JSON or TNetStrings format. The format type is indicated by prefixing the encoded output with either a 'J' character or a 'T' character, respectively.
84
77
@@ -134,14 +127,12 @@ Responses may have the following fields:
134
127
*``body`` - The response body content.
135
128
*``user-data`` - If this field was specified in the request, then it will be included in the response.
136
129
137
-
Sockets
138
-
-------
130
+
## Sockets
139
131
140
132
For basic usage, connect to Zurl's request-based interface using a REQ socket (ipc:///tmp/zurl-req by default, see your zurl.conf). To make a request, send a message over the socket. To receive the response, read from the socket.
141
133
142
134
For advanced usage you can connect to Zurl's streaming interface using PUSH, ROUTER, and SUB sockets. See tools/getstream.py as an example or check out the [ZHTTP draft spec](http://rfc.zeromq.org/spec:33) for details.
143
135
144
-
WebSockets
145
-
----------
136
+
## WebSockets
146
137
147
138
Creating a WebSocket connection through Zurl uses a variant of the ZHTTP protocol. Zurl's streaming interface must be used in this case. The protocol is not documented yet, but you can see tools/wsecho.py as an example.
0 commit comments