Giter VIP home page Giter VIP logo

tiscaf's Introduction

tiscaf Build Status

Introduction

tiscaf is an http server written in and intended to be used with the Scala programming language.

This project is based on the original work by Andrew Gaydenko (http://gaydenko.com/scala/tiscaf/httpd/) in its version 0.7. This explains why the software version starts at 0.8 in this repository. Many thanks to him for his help and answers.

Motivations

Very often the current software exosphere makes it almost impossible to do things in a simple way. Almost all developers are under heavy pressure of dependency on J2EE and accompanying frameworks with dozens of external libraries (how many megabytes do those external jars take?). Any of you know these software monsters with infinite dependency trees... What if you need more freedom?

OTOH, if you like to spend your life dealing with extraneous-designed XML-files (rather than coding) and/or to satisfy multiple APIs exposing good ideas (even if they are indeed good), be warned - tiscaf lives in another world.

The server has just what you need to handle an HTTP request, no more. tiscaf treats the server as a low-level self-contained "assembly" module (being used instead of servlet engine) which is easy to embed into any application as well as to wrap with, say, own templating framework, any dispatching model (besides included helper for tree-like URIs space), this or that (besides default) execution environment (say, Comet-like), and so on.

Features

  • nio - nio using permits resources managing.
  • dynamics - besides default execution pool it is possible to use own execution environment for each request handler.
  • full streaming - the server allows a streaming in both directions; say, you can download and upload ISO images.
  • dispatching - requests dispatching is limited with your imagination only.
  • multiport - listening to multiple ports is possible.
  • static content - file system and in-jar resources retrieving is supported out of the box (with files/directories browsing).
  • connections - persistent and SSL/TLS (experimental) connections are supported.
  • output - raw (content-length is known), buffered, gzipped (as a case of buffered), chunked - all modes are supported.
  • methods - POST/urlencoded, POST/multipart (with falling POST back to octets), PUT, PATCH, GET and DELETE methods are supported.
  • sessions - via URI path extensions or cookies are supported.
  • config files - are absent.
  • depends on - nothing (again: nothing).
  • suspendable computation - HLet computation may be interrupted at any moment and resumed later
  • licensing - LGPL.

Documentation

  • the API documentation is available here,
  • tutorials and examples may be found in the wiki pages.

tiscaf's People

Contributors

satabin avatar siteswap avatar

Watchers

James Cloos avatar Tom Wiesing 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.