Language Reference

At the time of writing (summer 2018), the C++, Go, Java, and OCaml ports are being actively developed and fleshed out.

Current Ports

Language Usage
C++ #include "drylib.hpp"
Go import ""
Java import dry.*;
OCaml open DRY

Planned Ports

Language Usage
C #include "drylib.h"
Common Lisp (require :drylib)
D import dry = drylib;
Elixir TODO
JS import * as dry from 'drylib';
Julia using DRYlib
Kotlin import dry.*
Lua dry = require 'drylib'
PHP require_once 'drylib.php';
Python import drylib
Ruby require 'drylib'
Rust extern crate drylib as dry;

Language Features

Language Type Checking Type Safety Memory Mgmt Strings Bignums? Exceptions? Closures? Macros?
C Static Weak Manual ✗ bytes
C++ Static Weak RAII/RC ✗ bytes
Common Lisp Dynamic Strong GC ✗ UTF-{16,32} [5]
D Static Weak? GC/Manual ✓ UTF-{8,16,32}
Dart Static Strong GC ✗ UTF-16 [1]
Elixir Dynamic Strong GC ✓ UTF-8
Go Static Strong GC ✓ UTF-8 [2]
Java Static Strong GC ✗ UTF-16 [3]
JS Dynamic Weak GC ✗ UTF-16 [4]
Julia Dynamic Strong GC ✓ UTF-8
Kotlin Static Strong GC ✗ UTF-16
Lua Dynamic Strong GC ✗ bytes [6]
OCaml Static Strong GC ✗ bytes [7]
PHP Dynamic Weak GC ✗ bytes
Python Dynamic Strong GC ✗ UTF-{16,32}?
Ruby Dynamic Strong GC ✓ UTF-8
Rust Static Strong RAII/RC ✓ UTF-8 [8]