Simple fast HTTP echo server
Project description
hecho
hecho is a fast and simple HTTP echo server.
An example is running on “http://hecho.bigode.net/”.
It uses Falcon HTTP library and Bjoern WSGI server to serve thousands requests per second using just one CPU Core and approximately 15MB of RAM.
The response is a “prettified” json containing the request.
Simple request/response example:
$ curl --header "Content-Type: application/json" \ --request POST --data '{"user": "john", "pass": "1234"}' \ http://localhost:8000?p=param { "headers": { "ACCEPT": "*/*", "CONTENT-LENGTH": "32", "CONTENT-TYPE": "application/json", "HOST": "localhost:8000", "USER-AGENT": "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2" }, "json": { "pass": "1234", "user": "john" }, "method": "POST", "origin": "127.0.0.1", "params": { "p": "param" }, "url": "http://localhost:8000/?p=param" }
It supports get, post, put, patch and delete methods.
The request data must be JSON or x-www-form-urlencoded (standard simple post).
Notes
Works on Python 2.7 and Python3.4+
Install
Install using pip:
pip install hecho
Usage
Usage: hecho [options] start|stop|restart simple and fast http echo server Options: --version show program's version number and exit -h, --help show this help message and exit -l ADDRESS address to listen (default: localhost) -p PORT application port (default: 8000) --log-path=LOGPATH logfile path (default: ~/.hecho/hecho.log) --pid-path=PIDPATH pidfile path (default: ~/.hecho/hecho.pid) --foreground run in foreground mode (default: disabled) --disable-log disable logging (default: disabled)
Running
Starting the server:
$ hecho start
Verify log, process and tcp listen address:
$ tail ~/.hecho/hecho.log [28/Dec/2018 16:23:10] Starting server... $ ps aux | grep hecho myuser 23648 0.0 1.5 214444 15720 ? S 15:54 0:00 python hecho.py start $ netstat -nlp | grep python tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 23648/python
Simple test:
$ curl localhost:8000 { "headers": { "ACCEPT": "*/*", "HOST": "localhost:8000", "USER-AGENT": "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2" }, "method": "GET", "origin": "127.0.0.1", "params": {}, "url": "http://localhost:8000/" }
Verify log:
$ tail ~/.hecho/hecho.log [28/Dec/2018 16:23:10] Starting server... [28/Dec/2018 16:24:55] 127.0.0.1 GET http://localhost:8000/ 200 313 curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Stopping the server:
$ hecho stop
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file hecho-0.1.4.tar.gz
.
File metadata
- Download URL: hecho-0.1.4.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/2.7.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b4257a039117b8d55bec18ccef4a9ee57ff4373d7c6e53468d910732ab2728c |
|
MD5 | 6f9c869fa57b7420ecbd0e370a70348a |
|
BLAKE2b-256 | d7bce547fbcb09f4d433ec5d4b1e4a0b68c8114c28d9597eadbbb95460846c6a |