Unix Software from Plan 9

These are ports of Plan 9's UTF-8, formatted print, buffered I/O, and regular expression libraries, along with mk, a simple replacement for make.

supported systems

| Digital Unix OSF1 (Alpha), Linux (x86 and PowerPC), FreeBSD (x86), NetBSD (x86), Mac OS X (Power PC), OpenBSD (x86), SunOS (Sparc)

installation

Links to source tgzs are below. On supported systems, extract and `make install`. The default installation target is `/usr/local`. To install elsewhere, `make PREFIX=/usr/elsewhere install`.

On unsupported systems, you will need to create `Make.YourOS-YourArch`. See the existing ones for examples. If you write one for a new system, please send it to us for inclusion in the tar files.

libutf

Libutf is a port of Plan 9's support library for UTF-8 and Unicode.

manual: isalpharune(3), rune(3), runestrcat(3), utf(7)

download: libutf.tgz

license: MIT

libfmt

Libfmt is a port of Plan 9's formatted print library. As a base it provides all the syntax of ANSI C's printf but adds the ability for client programs to install new print verbs. One such print verb (installed by default) is `%r`, which prints the system error string. Instead of `perror("foo")`, you can write `fprint(2, "foo: %r\n");`. This is especially nice when you write verbs to format the data structures used by your particular programs. Needs libutf.

manual: print(3), fmtinstall(3), quote(3), fmtstrtod(3)

download: libfmt.tgz

license: MIT

libbio

Libbio is a port of Plan 9's buffered I/O library. It provides most of the same functionality as stdio or sfio, but with a simpler interface and smaller footprint. Needs libutf and libfmt.

manual: bio(3)

download: libbio.tgz

license: MIT

libregexp9

Libregexp9 is a port of Plan 9's Unicode-capable regular expression library. It is small and simple and provides the traditional extended regular expressions (without modern complications like `{}` and various `\x` character classes). It supports Unicode via wide character or UTF-8 encoding. Needs libutf and libfmt.

manual: regexp9(3), regexp9(7)

download: libregexp9.tgz

license: MIT

mk

Mk is a simple replacement for make. Needs libutf, libfmt, libbio, and libregexp9.

manual: mk(1)

download: mk.tgz

license: MIT

one with everything

Includes mk and all the libraries.

download: mk-with-libs.tgz

contact

| Russ Cox (rsc@swtch.com)