Standard ML (SML) Libraries

There are a fairly large number of libraries for Standard ML, but it can be hard to find them. Here is a list of some of the useful ones that I know about. If you'd like to contribute to this document, email and I'll give you access.

Generic Libraries

  • Allen Leung's SML libraries includes an improved (w.r.t. SML/NJ) RegExp library, a printf library based on Functional Unparsing, and a stream library to make TextIO streams from pipes, sockets, etc.
  • isaplib collects Isabelle's general libraries together with some additional tools for managing names, finite mappings, finite binary relations, and re-namings. Isabelle's Libraries include XML, typical data structures, parsing, printing, multi-core programming in PolyML, name-spaces, and lots lots more.
  • MLton Libraries. These are design to work with MLton, and most of which can easily be ported to PolyML. In fact MLton can itself be compiled with PolyML. Libraries include:
    • lexing,
    • parsing,
    • GTK bindings,
    • concurrent-ML,
    • an HTTP server,
    • XML parsing,
    • Regular expressions,
    • Networking,
    • Pretty printing,
    • Unix-operating system tools,
  • FGL is a functional graph library.
  • Hardcore Processing's SML libraries provide generic error handling code, arithmetic, geometry, collections, functional IO, and parsing libraries
  • Protobuf - an open-source implementation of Google's protocol buffers in SML. 

Programming Language and Computer Science Libraries

GUI toolkits

Editor support for writing ML

Web-related projects using SML

  • SMLtoJs compiles SML code to JavaScript.
  • SMLserver is a web-server plugin for Apache. Based on MLKit, it provides interfaces for working with MySqlm Oracle, Postgres, XML-RPC.
  • ML server pages - use ML like you would PHP.
  • recent Ur framework for dynamic web-pages interfacing to SQL databases. Previously was: smlweb - dynamic web site tools for Standard ML.
  • SML on Stilts - a framework for robust web development based on multistage programming (for MLton); includes HTTP server, and SQL connections.
  • PolyChrome - a plugin for Firefox that runs PolyML.

SQL/Database stuff using SML

  • smlSQL - SQL library for Standard ML.
  • Smldb is a small library for an ML based database.
  • mlmongo is a Mongo wire protocol for accessing mongo databases.


See also the rather old list from Appel's list of other projects using SML (Database, SQL, and Web-serving related libraries)