Shirasu.ws is a WebSocket server framework.
- Erlang R14B
- Erlang - System Application Support Libraries (SASL)
- misultin 0.9-dev higher
- mochiweb
- Python 2.x >= 2.6
- PyYAML
If you use WebSocket protocol hybi-10, required misultin 0.9-dev higher.
Install and boot for Fedora 14:
$ sudo yum install -y PyYAML erlang-erlsyslog erlang-misultin erlang-mochiweb erlang-sasl $ sudo rpm -ivh http://shirasu.googlecode.com/files/shirasu-0.2-1.fc14.i386.rpm $ sudo service shirasu start
and access to demonstration that is listening at 8000 port. ex) http://localhost:8000/index.html
Include in the demonstration:
- Chat
- Exchange Chart
- Twitter Streaming
- Stats
- Commandline Monitor
- Network Monitor
If you use Network Monitor, require some Python libraries
$ mkvirtualenv pingman $ workon pingman $ pip install -r rel/files/sample/scripts/pingman.packages.txt
You can configure the Shirasu.ws by editing YAML file. ex) /etc/shirasu/shirasu.yaml:
shirasu: - port: 8000 shirasu_stat: /stat: true shirasu_http_serve: /: /var/lib/shirasu/sample/www shirasu_http_stream: /stream.twitter.com/1/statuses/sample.json: "http://<SCREEN_NAME>:<PASSWORD>@stream.twitter.com/1/statuses/sample.json" /exchange/USDJPY: - "http://chartapi.finance.yahoo.com/instrument/1.0/USDJPY=X/chartdata;type=quote;range=2d/csv/" shirasu_commandline: /commandline/traceroute: "traceroute google.com" /commandline/ping: - "ping -c 5 localhost" - "ping -c 10 localhost"
Boot from source of develop version:
$ git clone git://github.com/MiCHiLU/shirasu.git $ cd shirasu $ git checkout dev $ make debug
- draft-ietf-hybi-thewebsocketprotocol-10
- path based channel
- provide RPM package for Fedora 14
- YAML config
- serve static files via HTTP
- syslog support
- response body of HTTP GET request over WebSocket
- sample code
shirasu is used misultin that is an Erlang library for building fast lightweight HTTP servers. (see https://github.com/ostinelli/misultin)
enable to provides UDP syslog reception. edit /etc/rsyslog.conf:
$ModLoad imudp.so $UDPServerRun 514
add rules to /etc/rsyslog.conf:
user.* /var/log/shirasu/shirasu.log
and restart rsyslog:
$ sudo service rsyslog restart
checkout from Shiwasu.ws repository, and build RPM package:
$ git clone git://github.com/MiCHiLU/shirasu.git $ cd shirasu $ git checkout shirasu-0.2 $ make dist $ RELEASE=1 make package
When used in fedora 14, You can reduce the package size. Use this command instead of $ make dist:
$ make dist4fedora
finally, see your package/packages direcroty.
- 0.3dev:
- changed the format of listening port in YAML file
- added SSL support for WebSocket
- support input from system commandline
- 0.2:
- supported syslog
- added status module
- 0.1.2:
- fixed list of RPM requires
- 0.1.1:
- included sample files
- 0.1:
- first build