Giter Site home page Giter Site logo

stilts's Introduction

SML On Stilts

Stilts is a framework for robust web development based on multistage programming. Rather than performing extensive introspection and processing at runtime, Stilts compiles portions of the application together in multiple passes to ensure strict correctness between components. For example, templates are never parsed on the fly; instead, they are pre-serialized as much as possible into code. Type-checking all invocations of the template ensures that the application always passes templates the parameters they expect. Similarly, SQL statements are wrapped together with their input and output types, and escaping code inserted automatically.

The framework is written in Standard ML. Both SML/NJ and MLton are supported, with parallel CM and ML Basis build systems.

Components

  • Core Web application types, signatures, and utility functions.
  • A high-performance userspace threading system.
  • Server implementations of FastCGI, SCGI, and HTTP, allowing Stilts applications to be invoked from a variety of front-end Web servers or as a standalone daemon.
  • Smelt, an HTML / XML templating system.
  • Squall, a SQL query wrapper function generator.
  • Infrastructure for interfacing with MySQL and SQLite.
  • A simple Wiki, as a demo application.

See each component's README file for more documentation.

Installation

Some notes:

  • On debian, you will need to install the following packages in addition to smlnj: libckit-smlnj libmlnlffi-smlnj ml-nlffigen ml-lex ml-yacc ml-lpt

  • ml-yacc may fail like so:

      Usage: ml-yacc filename
      ../db/squall/squall.cm:5.2-5.11 Error: tool "ML-Yacc" failed: "/usr/lib/smlnj/bin/ml-yacc" "" "input.grm"
    

    Run ml-yacc filename by hand. (Argh, SML/NJ.)

stilts's People

Contributors

j4cbo avatar jwatzman avatar msullivan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  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.