• Stars
    star
    144
  • Rank 255,676 (Top 6 %)
  • Language Standard ML
  • License
    BSD 2-Clause "Sim...
  • Created over 8 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Library and Toolkit for Standard ML

Ponyo

CircleCI

Ponyo is a comprehensive high-level library and toolkit for Standard ML. It is inspired by POCO (C++), the Go standard library, and the Python standard library. While the Standard ML basis library is (perhaps) surprisingly solid, there are still a number of gaps to fill there and in the Standard ML ecosystem in general.

See ponyo.org for more information, documentation, tutorials, and news.

Prereqs

Poly/ML

Install Poly/ML. You will also need OpenSSL development headers and GNU Make.

MLton

Install MLton. MLton is a bit of a second-class citizen but that should improve over time. In particular, the green-threaded synchronous HTTP server is lousy.

SSL client sockets

SSL client socket support requires special compilation and is not yet supported by the regular Ponyo build process. To build Ponyo with SSL client socket support for MLton, run:

mlton -link-opt -lssl -link-opt -lcrypto <YOURPROJECT>.mlb lib/ssl.c

Installation

Next, choose a path for the Ponyo root. We will assume it is at ~/vendor/ponyo. Add the following lines to your ~/.profile:

PONYO_ROOT=~/vendor/ponyo

Now, download and install Ponyo to the path.

$ cd ~/vendor
$ git clone https://github.com/eatonphil/ponyo
$ cd ponyo
$ make
$ sudo make install

License

2-clause "Simplified BSD" license.

More Repositories

1

gosql

An early PostgreSQL implementation in Go
Go
681
star
2

dbcore

Generate applications powered by your database.
Go
501
star
3

goraft

A basic Raft implementation in Go.
Go
206
star
4

jsc

A JavaScript compiler written in TypeScript targeting C++/V8
TypeScript
196
star
5

lust

A parser, compiler, and virtual machine evaluator for a minimal subset of Lua; written from scratch in Rust.
Rust
189
star
6

raft-rs

Another minimal Raft implementation in Rust.
Rust
174
star
7

lisp-rosetta-stone

A lisp rosetta stone to demonstrate modern language features
JavaScript
170
star
8

owebl

OCaml, Meet Web.
OCaml
157
star
9

zigrocks

Writing a SQL database, take two: Zig and RocksDB
Zig
139
star
10

ulisp

A compiler for a lisp-like language targeting LLVM IR, x86 assembly
JavaScript
128
star
11

vhostm

Manage nginx virtual servers and hosts file entries
Python
105
star
12

x86e

A simple x86 emulator, debugger, and editor in JavaScript.
JavaScript
103
star
13

waterbugdb

Raft + Postgres parser + Postgres wire protocol + Boltdb + ? = Distributed PostgreSQL
Go
98
star
14

pj

A small, hand-written Python JSON library
Python
94
star
15

bsdscheme

A Scheme (R7RS) implementation written in D
D
58
star
16

tinyprograms

Tiny Programs: Rosetta code for implementations
Python
56
star
17

databases-intuition

Building an intuition for latency and throughput of basic operations across SQL databases.
Go
48
star
18

docdb

Basic document db from scratch in Go
Go
46
star
19

gomvcc

A little, pedagogical implementation of mvcc and transaction isolation levels.
Go
45
star
20

jsforth

A Forth REPL in Javascript.
JavaScript
43
star
21

notes.eatonphil.com

HTML
40
star
22

pyc

A Python to C compiler
Python
40
star
23

gomail

SMTP server from scratch in Go
Go
39
star
24

otf

A little Delta Lake/Iceberg inspired database implementation in Go
Go
36
star
25

raft-example

Minimal hashicorp/raft example
Go
32
star
26

gosqlite

SQLite driver for the Go programming language
C
32
star
27

deferlint

Linter for finding defer statements in Go loops
Go
32
star
28

referenceserver

Barebones UNIX socket servers
C
26
star
29

io-playground

Building an intuition for different IO models (sync, io_uring, etc.) across different languages.
Zig
25
star
30

goi

What else would you do with go/parser
Go
25
star
31

livescheme

Building a scheme live on Twitch in Golang
Go
21
star
32

btree-rs

Rust
20
star
33

pgext-101

Bare minimal Postgres extension
C
20
star
34

one-pass-code-generation-in-v8

One-pass Code Generation in V8 (Archive)
19
star
35

pgtam

Experiments with Postgres Table Access Methods
C
19
star
36

bootloaders

Bootloader exploration
Assembly
19
star
37

go-amd64-emulator

Userland linux/amd64emulator in Go
Go
19
star
38

cpp-json

A basic JSON library in modern C++
C++
16
star
39

linode_deploy_experimental

Deploy FreeBSD, OpenBSD, NetBSD, etc. to Linode unattended in minutes
Python
15
star
40

zig-metaprogramming-css-parser

Demoing the basics of metaprogramming in Zig by writing a very incomplete CSS parser.
Zig
14
star
41

jqgo

Variations on experimental Go clones of jq
Go
12
star
42

fastcgi-development-kit

See https://github.com/FastCGI-Archives/fcgi2 for a "maintained" mirror
Shell
12
star
43

pgexec

Messing with Postgres query execution and hook infrastructure.
C
12
star
44

io_uring-basics-writing-file

Zig
10
star
45

jvm-lisp-examples

Examples of Lisp on the JVM
Common Lisp
10
star
46

eatonphil.com

eatonphil.com
HTML
9
star
47

sciore-simpledb-3.4

Java
9
star
48

gozip

A simple zip implementation in Go
Go
8
star
49

pytemplate

Basic templating library written in Python
Python
8
star
50

slowjs

C
7
star
51

jsi

An interpreter built on the TypeScript Compiler API
TypeScript
7
star
52

accord-protocol

CEP-15: Fast General Purpose Transactions
6
star
53

uweb

A web framework for teaching web server basics.
JavaScript
6
star
54

exploring-plpgsql

PLpgSQL
6
star
55

riscve

A RISC-V user-mode emulator for RV64I
Go
5
star
56

benchmarking-interpreters

Benchmarking an ast interpreter, bytecode vm, and compiler
Go
5
star
57

learnit

A script for creating google calendar events from a dictionary
Go
5
star
58

zig-libtcc

Zig
4
star
59

pine

Pine is a web framework for Chicken Scheme using FastCGI
Scheme
4
star
60

pgkv

pgkv: A key-value API for learning Postgres C
C
4
star
61

tnet

A minimal TCP/IP stack via Linux TAP device
C
3
star
62

graphics-playground

C#
3
star
63

linode-haskell

Haskell wrapper for the Linode v4 API
Haskell
3
star
64

gostorage

Exploring database storage
Go
2
star
65

python3-linode_api3

A Linode APIv3 client for Python3
Python
2
star
66

iouring-playground

Zig
2
star
67

mod_ocaml

Apache module to allow embedded OCAML.
C
2
star
68

jx

Apparently, this project prefers to keep an air of mystery about it.
Rust
2
star
69

linearizability-playground

Linearizability playground with Porcupine
Go
2
star
70

scripts

Personal scripts for system administration, common stuff
Shell
1
star
71

sml-mode

sml-mode for emacs
Emacs Lisp
1
star
72

govsr

Can I implement Viewstamped Replication?
Go
1
star
73

imaging

Image effects in Javascript
JavaScript
1
star
74

games

JavaScript
1
star
75

nycsystems.xyz

https://nycsystems.xyz
HTML
1
star
76

badio

Zig
1
star