Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A Unicode Port Driver For Erlang
C Erlang Ruby C++
Branch: master
Failed to load latest commit information.
c_src Rebarize starling.
demo moving repo over from
ebin Rebarize starling.
priv Fix missing priv dir.
src Rebarize starling.
.gitignore Fix missing priv dir.
Rakefile Rebarize starling.
findei.erl moving repo over from
license.txt moving repo over from
rebar.config Rebarize starling.


Additional Info

There is are a couple of projects to implement ICU as a NIF in Erlang. You can find them at:

Release Notes V 2.0

Starling which was previously hosted at has been brought into the Hypernumbers repositories at GitHub at

In this release multiple instances of the port driver can be loaded to provide to provided additional throughput.

The number of instances is determined by the environment variables in the file.

The environment variable 'poolsize' determines how many ports will be loaded and the environment variable 'group' determines the name of the pg2 group that the starling_server processes will be part of.

The pg2 group is a global group and starling can now be deployed as a multiserver capability.

Starling is a Unicode text processing library for Erlang.
It's based on ICU (, which you need to have installed to use Starling.

`port install icu` with MacPorts on OSX
`apt-get install libicu38 libicu-dev` on Ubuntu

You also need to have Ruby and Rake installed (the build script uses Rake).

To compile, just run `rake` from Starling's root directory.

Once you've compiled Starling, start the Erlang shell with:
`erl -pa ~/path/to/starling/ebin`

You can then use Starling like this:

  1> application:start(starling_app).
  2> S = ustring:new("hello").
  3> S2 = ustring:upcase(S).
  4> ustring:pr(S2).

There's a couple of simple demos under demos/. You may also want to take a look at tests/.

Project's homepage:
Google Code page:

Hasan Veldstra <>
Something went wrong with that request. Please try again.