GithubHelp home page GithubHelp logo

risent / teepeedee2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vii/teepeedee2

1.0 2.0 1.0 544 KB

Fast webserver for dynamic pages

Home Page: http://cliki.net/teepeedee2

License: Other

teepeedee2's Introduction

-- What's this?

teepeedee2 is a webapplication framework for dynamic webpages. I made
it to see whether it was possible to write a high performance
application in Lisp. There were many obstacles in the way.

-- Getting started

Very rough notes!

Start sbcl (note that the server at john.freml.in is actually running on CCL).

(require 'asdf-install)
(loop for x in '(:cffi
	       :iterate
	       :cl-irregsexp
	       :trivial-backtrace) (asdf-install:install x))

(in-package #:tpd2)
(loop for port in '(8888) do
      (let ((socket (tpd2.io:make-con-listen :port port)))
	(tpd2.io:launch-io 'tpd2.io:accept-forever socket 'tpd2.http:http-serve)))

(tpd2.io:event-loop)



-- More info

This webserver is not finished and I wrote it to learn and experiment
with Common Lisp. There is a lot to be tidied up, now I know the
language better. If you have any interest in using it, please get in
touch with me, John Fremlin <[email protected]>, or
http://john.fremlin.org/contact.html

It is faster than all(?) other web application frameworks for serving
small dynamic webpages. Please let me know if you have a case where
another framework is faster!

You can see benchmarks comparing it to other web application platforms
like PHP and Rails in this presentation
http://tlug.jp/meetings/2008/11/serving-dynamic-webpages-in-less-then-a-millisecond_john-fremlin_handout.pdf

You can see an example of it running a blog on http://john.freml.in.

It is designed so that small fragments of JavaScript can be delivered
at low overhead to many clients.

However, it also includes general support libraries for quickly
generating XML/HTML (tpd2.ml2), for doing fast networking in a
continuation passing style, i.e. fast event driven userspace
threading (tpd2.io).


For an example application, loaded by default, see the src/game directory.

The addons/ directory contains a few of the other projects (but not
all) that teepeedee2 depends on. They are released under their own
licence.

The licence for most of tpd2 is the Lisp LGPL. However, I take no profit
from making this, and request that if you make an application with it,
please release the source so others can learn from it. Don't be
selfish!

It runs on SBCL and ClozureCL. It shouldn't be hard to port to other
modern Common Lisps.

teepeedee2's People

Contributors

vii avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.