/awesome-inferno

A curated list of awesome Inferno documents, libraries, and software

Awesome Inferno

A curated list of awesome Inferno resources, libraries, and software.

Note: Curated is a strong word since there is so little public content related to Inferno/Limbo, so this is basically everything out there found so far. All content is awesome in this regard.

The official repository for the current Inferno source tree is: https://bitbucket.org/inferno-os/inferno-os/

The official website of the Inferno operating system is: http://www.vitanuova.com/inferno/index.html

The official mailing list for Inferno is on Google Groups: https://groups.google.com/forum/#!forum/inferno-os

The IRC channel on Libera.Chat for Inferno is: #inferno

Legal:

Inferno® is a registered trademark of Vita Nuova Holdings Limited in the USA and other countries, and in the European Union.

Inferno OS™ is a trademark of Vita Nuova Holdings Limited in the USA and other countries, and in the European Union.

Limbo® is a registered trademark of Vita Nuova Holdings Limited in the USA and other countries, and in the European Union.

Dis® is a registered trademark of Vita Nuova Holdings Limited in the United Kingdom, the USA and other countries.

Inferno License Information: http://www.vitanuova.com/inferno/licence.html

Contributing

Please do.

PR's welcome for all edits or new projects.

Contents

Resources

Useful documents, blogs, etc. that relate to Inferno and the Limbo programming language.

Papers

Various papers or paper-equivalent documents related to Inferno and Limbo.

Libraries

Libraries, also known as modules, usable under Inferno. These may be in C or Limbo.

  • zipfs(4) - Library for managing .zip files
  • http - A http library and examples
  • sha2 - SHA-2 library and example tools
  • textmangle - Parses readable utf-8 ascii text and distills block-level layout information from it
  • pdfread - A library & tools for reading pdf files
  • util - A library with various commonly used functions by mjl
  • filtertool - Wrapper for the Limbo filter module
  • growing - Dynamically growing arrays
  • powerman's hashtable - Limbo hash module substitute
  • iobuf - Simpler alternative to bufio(2)
  • logger - Configurable logging
  • regmonitor - Monitor for added/changed/removed registry(4) services
  • cjson - JSON tokenizer for (de)serializing ADT's
  • tap - Test Anything Protocol (TAP) producer
  • re2 - Provides access to regular expression library re2 (hosted-only)
  • avl - AVL tree implementation with text file parsing

Applications

Programs or program resources which can be used under Inferno. These are most likely written in Limbo.

  • simplefs - Simple styx filesystem to serve as a learning example
  • tttfs - Simple styx filesystem implementing Tic-Tac-Toe as an example
  • hexe - Port of hexe hexdump utility by LunarLambda
  • Terzarima Inferno Software - Miscellaneous software from Terzarima
  • emuq - Emu bundled with a small built-in root file system
  • j2d - Java to Dis conversion (very old)
  • register - Keep service registered in registry(4)
  • opt skel - Skeleton template for /opt projects
  • opt mkfiles - Mkfiles for /opt projects
  • opt/setup - Scripts to setup /opt projects
  • watchdog - Detects and acts on crash of command/pid
  • retrymount - Mounter which tries to reconnect dc'd mounts
  • dboddie's misc programs - A collection of Limbo programs by dboddie
  • qwm - Alternative window manager to wm/wm with arrangement similar to acme/dwm
  • novt - A basic ecma-48 terminal emulator with color
  • wmrun - Extended alternative to wm/sh
  • ircfs - IRC client expressing itself as a 9p file system (includes wm/irc gui client)
  • find - Traverse directory trees; print paths and sys-stat(2) information about a file
  • vacinit - Replacement for emuinit for Vac disk file systems (see: vacsrv)
  • vacsrv - Vac file system
  • ventisrv - Venti file server daemon
  • q - Provides static-linking-like functionality for Limbo
  • wm/vncv - VNC viewer using the RFB protocol
  • vixen - Vi-like editor
  • hgfs - Serves the contents of a mercurial repository over styx
  • fdmux - Multiplexes a file descriptor, e.g. a tcp connection
  • nfssrv - Contains nfssrv and nfsfs, an nfs server and client
  • web - A collection of code for dealing with "the web"
  • httptun - Tunnel a tcp connection through http
  • nopoint - A tool for displaying slideshows, inspired by magicpoint
  • playfs - Maintain play list and play audio files
  • scgid - SCGI daemon for tcp connections
  • ip/dhcpd - A dhcpd (it also speaks bootp)
  • ext2fs - Gives read-only access to the contents of ext2 file systems
  • ffs - A read-only implementation of the BSD ffs as used on OpenBSD
  • ip/ftpsrv - A simple, anonymous, ftp server
  • mjl's games - Two graphical games by mjl
  • webdavfs - A 9p file server that accesses files over http/webdav
  • hgweb - Implements a web frontend to hgfs, the mercurial file system
  • (un)expand - Tab to space and space to tab conversion
  • ttffs - A 9P server, serving ttf files in any size as inferno/plan 9 (sub)fonts
  • fontsrv - A translation service for fonts. given a font query
  • zipfs - Programs for managing .zip files
  • attrfs - Reads an attrdb(6) database into memory and provides a file system interface to finding matches
  • cryptfile - An encrypted block file served over styx
  • authsrv9 - Provides a plan 9 authentication service (auth/authsrv)
  • lsynergy - A synergy client
  • snmp - Contains an snmp v1-2 client library and tools using these libraries
  • styxtest - Programs to help test styx/9p servers for correct behaviour
  • lyricd - Contains a lyric serving daemon, a client and a scgi program to serve as web frontend
  • shhtpd - Shttpd is a simple httpd
  • torrent - This package contains a bittorrent peer
  • ssh - This package contains an ssh client, sftpfs, and the library that the client uses
  • Acme SAC - The ACME editor for Windows/Mac/Linux
  • MR - MapReduce framework including dfs and mapreduce
  • ClusterComputing - Cluster and parallel computing framework based on Inferno

Non-Inferno Software

Software for interfacing with, or relating to, Inferno and Limbo, but not intended for use under Inferno.

Ports

Ports of the Inferno operating system.

Forks

Forks of the Inferno operating system.

Dis Implementations

Dis virtual machine implementations outside of Inferno proper.

  • DisVM - An implementation of the DisVM outside of the Inferno OS

Inspired by Inferno

Projects inspired by the Inferno operating system.

  • Node9 - A portable hybrid distributed OS based on Inferno, LuaJIT and Libuv
  • Wonderland - DHT-based distributed virtual filesystem based on Inferno

Books

Books related to the Inferno operating system and Limbo programming language.

Note: ISBN's are separated by double dashes: --

  • Inferno Programming with Limbo -- 780470843529 -- 978-0470843529
  • Principles of Operating Systems: Design & Applications -- 1-4188-3769-5
  • The Inferno Programming Book : An Introduction To Programming For The Inferno Distributed Systems (unpublished) -- 0470849711 -- 9780470849712
  • Inferno Programmer's Manual Collated (1 & 2) -- 0953870103 -- 978-0953870103