Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pdrb/hecho
Simple and fast http echo server
https://github.com/pdrb/hecho
echo-server http-server python
Last synced: 7 days ago
JSON representation
Simple and fast http echo server
- Host: GitHub
- URL: https://github.com/pdrb/hecho
- Owner: pdrb
- License: mit
- Created: 2018-12-28T18:45:45.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-09-28T03:38:48.000Z (about 5 years ago)
- Last Synced: 2024-10-28T22:45:35.090Z (17 days ago)
- Topics: echo-server, http-server, python
- Language: Python
- Size: 8.79 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
|Downloads|
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/pythonSimple 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.2Stopping the server::
$ hecho stop
.. _Falcon: https://github.com/falconry/falcon
.. _Bjoern: https://github.com/jonashaag/bjoern.. |Downloads| image:: https://pepy.tech/badge/hecho