Echo server for TCP/UDP/HTTP
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
lib
.editorconfig
.eslintrc
.gitignore
.npmrc
.releaserc
.remarkrc
LICENSE
README.md
circle.yml
package-lock.json
package.json
parakeet.png
renovate.json
screenshot.png

README.md

Parakeet

License version Build Status

Echo server for TCP/UDP/HTTP

screenshot

Watch the screencast here

About

The common parakeet (Melopsittacus undulatus), is a popular talking-bird species because of their potential for large vocabularies, ease of care and well-socialized demeanor. https://en.wikipedia.org/wiki/Parakeet

parakeet

Message Format

event format example
server start [TIME] ▶️ TYPE LISTEN_IP LISTEN_PORT [03:32:54 AM] ▶️ TCP 127.0.0.1 1338
connection open [TIME] ⚪ REMOTE_IP REMOTE_PORT [03:32:54 AM] ⚪️ TCP 127.0.1.1 1338
connection close [TIME] ⚫️️ REMOTE_IP REMOTE_PORT [03:32:54 AM] ⚫️️️ TCP 127.0.1.1 1338
data recieved [TIME] ✔ REMOTE_IP REMOTE_PORT [BYTES] "MESSAGE" [03:33:00 AM] ✔ (127.0.0.1 57619) [8] "hello!\r\n"
http signature (http only) [TIME] ✔ REMOTE_IP REMOTE_PORT HTTP_VERSION METHOD URL [03:32:33 AM] ✔ (127.0.0.1 49575) HTTP/1.1 POST /
http headers (http only) [TIME] ✔ REMOTE_IP REMOTE_PORT KEY: VALUE [03:32:33 AM] ✔ (127.0.0.1 49575) Host: localhost:8080

Sample Output

TCP
[03:32:54 AM] ▶️ TCP 127.0.0.1 1338
[03:32:57 AM] ⚪ (127.0.0.1 57619)
[03:33:00 AM] ✔ (127.0.0.1 57619) [8] "hello!\r\n"
[03:33:08 AM] ⚫️️️ (127.0.0.1 57619)
UDP
[03:32:41 AM] ▶️ UDP4 127.0.0.1 1337
[03:32:45 AM] ✔ (127.0.0.1 45464) [6] "hello\n"
[03:32:46 AM] ✔ (127.0.0.1 45464) [6] "world\n"
HTTP
[03:32:27 AM] ▶️ HTTP 127.0.0.1 8080
[03:32:31 AM] ⚪ (127.0.0.1 49574)
[03:32:31 AM] ✔ (127.0.0.1 49574) HTTP/1.1 POST /
[03:32:31 AM] ✔ (127.0.0.1 49574) Host: localhost:8080 Content-Length: 36 Content-Type: application/json; charset=utf-8 Accept-Encoding: gzip, deflate, compress Accept: application/json User-Agent: HTTPie/0.8.0
[03:32:31 AM] ✔ (127.0.0.1 49574) [36] {"name": "ahmad", "city": "toronto"}
[03:32:31 AM] ⚫️️️ (127.0.0.1 49574)

[03:32:33 AM] ⚪ (127.0.0.1 49575)
[03:32:33 AM] ✔ (127.0.0.1 49575) HTTP/1.1 POST /
[03:32:33 AM] ✔ (127.0.0.1 49575) Host: localhost:8080 Content-Length: 23 Content-Type: application/x-www-form-urlencoded; charset=utf-8 Accept-Encoding: gzip, deflate, compress Accept: */* User-Agent: HTTPie/0.8.0
[03:32:33 AM] ✔ (127.0.0.1 49575) [23] name=ahmad&city=toronto
[03:32:33 AM] ⚫️️️ (127.0.0.1 49575)

Install

npm install parakeet

Usage


  Usage: parakeet [options] [command]


  Commands:

    http   start HTTP echo server
    tcp    start TCP echo server
    udp    start UDP echo server

  Options:

    -h, --help               output usage information
    -V, --version            output the version number
    -p, --port <number>      port to listen on
    -a, --address <address>  network address to listen on


Author: Ahmad Nassri • Github: @ahmadnassri • Twitter: @AhmadNassri