Ponyo

Library and toolkit for Standard ML

About

Ponyo is a modern, high-level, comprehensive library for Standard ML. It is also a set of tools for working with Standard ML projects.

Ponyo is a work in progress, so keep tuned for news! If you have any questions, feel free to open an issue or join us on Freenode at #sml-ponyo.

To follow the Standard ML community in general, check out /r/sml. The /r/sml wiki is a great source of information for getting started in Standard ML. Additionally, someone is always available on Freenode at #sml.

Features:

  • HTTP server/client
  • SSL sockets
  • Cli tools
  • Standard ML parser/lexer
  • JSON support
  • Enhanced build tool and top-level
  • Documentation generator
  • Much more on the roadmap

Hello world!

structure Format = Ponyo.Format

fun main () =
    Format.printf "Hello %!\n" ["world"]
$ ponyo make helloworld.sml -o helloworld
$ ./helloworld

For more examples, check out the Ponyo tool directory, the "test" directory, and the source for this site.

Installation

Ponyo is a Standard ML library. The Standard ML implementation of choice is Poly/ML. See the Poly/ML Github page for installation instructions. You will need OpenSSL devel headers to work with the Ponyo_Net_SSLSocket module.

After Poly/ML has been installed, add the following lines to your ~/.profile:

# Ponyo path settings.
export PONYO_ROOT=""
export PATH=$PATH:$PONYO_ROOT/bin

Then, build Ponyo from git:

$ git clone https://github.com/eatonphil/ponyo && cd ponyo
$ make

Note: Many of the Ponyo tools will not work with other implementations or on Windows.