Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: e3f3339aaf
Fetching contributors…

Cannot retrieve contributors at this time

35 lines (22 sloc) 1.018 kB
Rooster is a server built in Chicken Scheme.
Rooster makes use of the epoll egg that I wrote (http://github.com/davidreynolds/epoll) to handle socket events.
Right now I'm working on making Rooster into a web server. Don't expect too much right now.
Requires linux + epoll at the moment.
I'd like to fallback to poll if epoll isn't available.
Run make to generate rooster.so
$ make
To use rooster.so for a basic web server:
(require 'rooster)
(define (handler fd buf)
(let* ((msg "Hello, world")
(headers (format
"HTTP/1.1 200 OK\r\nContent-Length:~A\r\n\r\n"
(string-length msg))))
(send-to-client fd (string-append headers msg))))
;; pass handler to rooster
(run-rooster handler)
To run the examples, make rooster and then do:
$ csi examples/webserver/webserver.scm
You'll then be dropped into the Chicken Scheme Interpreter and from another shell prompt
you can
$ curl localhost:6666
Jump to Line
Something went wrong with that request. Please try again.