Schmorpforge Software Repository

Project List

Deliantra Free MMORPG
The free as in beer, liberal, code & content retro-style graphical MMORPG :)


This page briefly documents the Schmorpforge Software Repository and lists all projects available here.

BUGSDo not use to report bugs, use an appropriate mailinglist or mail the author directly.
CVSAll CVS modules can be browsed here
FILEMost file releases can be found here or on CPAN (for Perl modules)
LISTAll mailinglists can be found here
IRCServer, channel #schmorpforge, user schmorp (say hi and wait a few minutes or hours)
Other project-specific IRC servers are listed on their respective project page.

Project List

Algorithm-FEC Perl module implementing forward error correction using Vandermonde matrices
AnyEvent This module offers a simple API for I/O, timer, signal, child process and completion events, independent of a specific event loop.
AnyEvent-AIO A perl module providing transparent integration of IO::AIO into AnyEvent.
AnyEvent-BDB A perl module providing transparent integration of BDB into AnyEvent.
AnyEvent-DBI A relatively simple wrapper around DBI to make asynchronous SQL requests.
AnyEvent-DBus A perl module providing mostly transparent integration of Net::DBus into AnyEvent.
AnyEvent-FastPing This module implements a very fast and relatively flexible ping (ping as in icmp echo request).
AnyEvent-FCP A perl module implementing a Freenet Client Protocol 2.0 client.
AnyEvent-Fork Everything you wanted to use fork() for, but couldn't.
AnyEvent-Fork-Pool Simple process pool manager on top of AnyEvent::Fork and AnyEvent::Fork::RPC.
AnyEvent-Fork-Remote Remote processes with AnyEvent::Fork interface
AnyEvent-Fork-RPC Simple RPC extension for AnyEvent::Fork
AnyEvent-GPSD A perl module implementing an AnyEvent client for the (pre-xml) GPSD protocol.
AnyEvent-HTTP A simple and plain event based http and https client.
AnyEvent-MP This Perl module (-family) implements a simple message passing framework for Perl.
AnyEvent-MPV Runs and remoter-controls an MPV video player.
AnyEvent-Porttracker A perl module implementing a client for the Porttracker/PortIQ API protocol.
AnyEvent-ReadLine-Gnu This is a small interface to Term::ReadLine::Gnu for event-based programs.
AnyEvent-SNMP A perl module that transparently integrates Net::SNMP into AnyEvent.
AnyEvent-Watchdog A perl module implementing a watchdog for Perl processes.
AnyEvent-WebDriver A thin wrapper around the W3C WebDriver protocol ("Selenium" browser remote control)
AnyEvent-ZabbixSender A perl module implementing an AnyEvent client for the zabbix_sender protocol, used to submit monitoring data items to a zabbix server or proxy.
App-Staticperl Perl, libc, 100 modules - all in one self-contained 500kb executable.
Array-Heap A Perl module that implements C++ STL-like binary heap operations.
Async-Interrupt Allow C/XS libraries to interrupt perl asynchronously.
Audio-Play-MPG123 A Perl module implementing an interface to mpg123.
basex Very old, very portable ANSI-C program that implements something that is similar to yencode. yencode is more "standard", so don't use this.
BDB A Perl module implementing an interface to BerkeleyDB versions 4.4 and later. Unlike the BerkeleyDB and DB_File modules, this module has a much more C-like interface exposing all the features of the underlying library and also executes all database changes asynchronously using a thread pool.
Canary-Stability A little bird that doubles as an early warning system.
CBOR-XS CBOR::XS implements the Concise Binary Object Representation (RFC 7049), which is a kind of "binary JSON" that also has the ability to cleanly serialise objects. Unlike other binary formats, CBOR is actually capable of representing all JSON texts, not just a subset of them.
cfmaps This is a collection of scripts that I use to create the Deliantra maps at
common-sense This module implements some sane defaults for Perl programs, as defined by two typical (or not so typical - use your common sense) specimens of Perl coders.
Compress-LZF A Perl module implementing the LZF compression algorithm, and simple to use data structure serialising.
Compress-LZV1 A Perl module implementing the LZV1 compression algorithm. See Compress::LZF for a better algorithm and module.
Convert-BER-XS A very low level BER/DER decoder and encoder library.
Convert-CD Unfinished Perl project implementing CD image formats. Extracting ISO images already works.
Convert-Scalar Perl module to convert between different representations of Perl scalars.
Convert-UUlib Perl interface to the uulib library (a.k.a. uudeview/uuenview), which allows easy decoding of multipart mime, uuencode and a whole lot of differently encoded messages. You basically throw files at it, and it extracts the files in them. This module is used by the popular amavis virus scanner.
Coro A large Perl module family that implements cooperative multitasking in Perl. It supports filehandle and event abstraction and also implements continuations as well as the necessary directives to implement a slightly limited call/cc in Perl.
Coro-MP This Perl module extends the AnyEvent::MP API with a thread-like/erlang-style API.
Coro-Multicore Runs XS functions transparently in their own XS level thread, running other Coro threads in parallel.
Coro-Mysql Lets other threads run while doing mysql requests via DBD::mysql.
Crypt-Ed25519 A Perl module implementing Ed25519 public key signing and verification.
Crypt-Spritz A Perl module implementing the Spritz family of cryptographic algorithms, giving you a stream cipher, a hash, a mac, authenticated encryption with associated data (AEAD) and a cryptographically secure random number generator, at reasonable speed and with very small code size, making Spritz an attractive algorithm for resource-constrained environments such as javascript in your browser, or microcontrollers.
Crypt-Twofish2 A Perl module implementing the twofish encryption algorithm in Perl. It has mostly been superceded by the Crypt::Twofish module. However, it supports an easy and fast CBC mode natively.
CV Gtk2::CV is a perl module that implements an image viewer.
deliantra Deliantra server, archetypes, maps, editor, client and support modules distribution.
deliantra/arch The Deliantra game resources.
deliantra/Deliantra Perl module family for the Deliantra game.
deliantra/Deliantra-Client A modern, fullscreen client for Deliantra, written using Perl and leveraging only OpenGL for display and thus being easily portable. See its homepage.
deliantra/gde The Deliantra editor, written in Perl + Gtk2.
deliantra/maps The Deliantra game maps.
deliantra/server The Deliantra game server.
Devel-FindRef A Perl module that tries to track down references to perl values. Can be a great aid in debugging leak problems by showing where a value is still being referenced.
dhcpping A version of dhcpping enhanced by Marco Maisenhelder to support passing dhcp options. Intended to test dhcp server implementations.
Digest-FNV-XS Perl module to generate FNV hashes (FNV-0, FNV-1, FNV-1a in 32 and 64 bit) plus utiilities for xor folding and retry mapping. The main selling point over Digest::FNV is that it works with binary data.
Digest-Hashcash Perl module to generate and parse hashcashes. Follow the link to learn more. This module is currently faster than the hashcash reference library.
dinfo Undocumented and working tools to extract the data from the D-Info CD.
ermyth This is a fork of Atheme IRC Services.
EV A thin wrapper around libev, a high-performance event loop. Intended as a faster and less buggy replacement for the Event perl module. Efficiently supports very high number of timers, scalable operating system APIs such as epoll, kqueue, solaris's ports, inotify, eventfd, signalfd, child/pid watchers and much more.
EV-ADNS An asynchronous stub resolver that integrates efficiently into the EV event loop. Uses adns/libadns as backend.
EV-Glib This perl module embeds the default Glib mainloop into the EV event loop. This makes it possible to use callbacks or modules using the Glib module (e.g. Gtk2 programs) within EV programs. Just loading it suffices. See the Glib::EV module for the reverse approach.
EV-Loop-Async Small module that runs an EV event loop in another thread and uses an Async-Interrupt object to signal new events to perl.
ExtUtils-CXX Try to treat .xs files as C++ rather than C in your module.
Faster A perl module that makes perl run, well, faster, using a very primitive just in time compiler.
fcrackzip fcrackzip is a zip password cracker, similar to fzc, zipcrack and others.
File-Rdiff A Perl module that generates remote signatures and patches files using librsync: basically your interface to librsync.
Games-Go-SimpleBoard A Perl module representing a go board.
Games-Sokoban A perl module to load/transform/save sokoban levels in various formats.
Geo-LatLon2Place This is a single-purpose module that tries to do one job: find the nearest placename for a point on earth. It doesn't claim to do a perfect job, but it tries to be simple to set up, simple to use and be fast. It doesn't attempt to provide many features or nifty algorithms, and is meant to be used in situations where you simply need a name for a coordinate without becoming a GIS expert first.
Glib-EV This perl module patches the default libglib main loop context to use the EV module. This makes it possible to use callbacks or modules using the EV module within Glib and Gtk2 programs. Just loading it suffices. See the EV::Glib module for the reverse approach.
Glib-Event This perl module patches the default libglib main loop context to use the Event module. This makes it possible to use callbacks or modules using the Event module within Glib and Gtk2 programs. Just loading it suffices.
GPS Undocumented, unreleased and unfinished-but-working interface to some GPS devices in Perl.
Gtk2-GoBoard A Perl module implementing a go board widget.
gtkbfc Gtk+ bash file chooser replacement.
Guard This small module implements scope and object guards, that is, code blocks that are executed when a scope is being exited (or an object is destroyed).
gvpe GVPE creates a virtual ethernet network with multiple nodes using a variety of transport protocols. Participating nodes do not need to trust each other.
IO-AIO A Perl module that implements asynchronous I/O using pthreads. Apart from AIO reading and writing, this module also allows asynchronous stat, open, unlink (and more) calls, which often are a substantial blocking problem. See also its (outdated) brother Linux-AIO.
IO-FDPass Pass a file descriptor over a socket.
JSON-XS JSON::XS implements JSON ( for Perl. Unlike other modules, its primary goal is to encode to syntactically correct JSON and flag invalid JSON while decoding. It ensures round-trip integrity of datatypes while being intuitive to use. Currently being the fastest of the JSON encoders available for Perl, it supports a variety of format options, such as single-line, ASCII-only or pretty-printed and can be tuned for speed or memory usage. It comes with a wealth of documentation describing usage and implementation details.
kgsueme This perl module is about reverse engineering the protocol (xml source) of the popular Kiseido Go Server.
libcoro This C-library implements coroutines (cooperative multitasking) in a portable fashion.
libecb The e compiler builtins header/library.
libeio Event-based fully asynchronous I/O library for C (used by IO::AIO). Currently in BETA!
libev A full-featured and high-performance (see benchmark) event loop that is loosely modelled after libevent, but without its limitations and bugs. It is used in GNU Virtual Private Ethernet, rxvt-unicode, auditd, the Deliantra MORPG Server and Client, and many other programs.
liblzf LibLZF is a very small data compression library.
libptytty libptytty is an offspring of rxvt-unicode that handles pty/tty/utmp/wtmp/lastlog handling in mostly OS-independent ways, so it's less of a hassle for you :)
libspf Libspf is a C library that implements the Sender Policy Framework. It allows software to identify and reject forged envelope-from addresses, a typical nuisance in e-mail spam. SPF is defined in Experimental RFC 4408.
Linux-AIO A Perl module that implements asynchronous I/O using clone on Linux. Apart from AIO reading and writing, this module also allows asynchronous stat, open and close (and more) calls, which often are a substantial problem. See also its (newer) brother IO-AIO.
Linux-Clone A Perl interface to the clone(2) and unshare(2) syscalls.
Linux-DVB A perl module that implements a very direct interface to the Linux DVB API. Also contains utility functions to decode SI data.
Linux-Inotify2 A better/less buggy/more portable interface to the Linux Inotify subsystem then what Linux::Inotify has to offer. Inotify lets you receive file change, create, move etc. events for directories in files in a more scalable fashion than dnotify, the older mechanism.
Linux-NBD A Perl module that helps implementing netblock block device servers and set up NBD instances. A sample application allowing you to mount most CD images is included.
lmainit A sysvinit replacement that can even be configured to be sysvinit-compliant.
lsys lsys is a program that interprets lindenmeyer-systems.
Mozilla-Plugin Undocumented, unreleased and unfinished-but-somewhat-working Perl plug-in for Mozilla (Netscape, Opera, IE...), that allows embedding Tk, Gtk etc. plugins directly in the browser.
Net-FCP Perl module implementing the Freenet client protocol, including client-side Metadata handling and CHK Key generation. Includes a mass downloader (similar to fuqid) as sample application.
Net-IRC-Server This module provides a simple API for handling the IRC Protocol aiming at implementing lightweight IRC-Servers.
Net-Knuddels This perl module provides an API for group communications using the protocol. It is outdated and only provided as reference.
Net-SNMP-EV An adaptor that integrates the Net-SNMP Perl module into the EV event loop. Loading it suffices to make background requests in EV programs.
Net-Whois-IP Undocumented, unreleased and unfinished-but-somewhat-working Perl module that tries to find the corresponding whois entry for a given IP, by querying various registries.
OpenCL An interface to OpenCL (the Open Computing Language) for Perl.
OpenSSL Undocumented, unreleased and unfinished-but-somewhat-working Perl module interfacing to libssl.
PApp-SQL Absolutely easy yet fast and powerful SQL access.
pbcdedit This is "a small hack grown properly out of proportion" that implements a portable version of the Microsoft Windows BCDEDIT program. It is pretty unique in that it does run on non-windows platforms, can create BCD hives from scratch and parses and edits BCD device elements. it is also self-contained and only needs a perl 5.16 (or above) installation.
PDL-Audio Perl module extending PDL with all sorts of audio functions for generating, analyzing, loading and saving sounds. Ever so popular is the "birds" demo script :)
Proc-FastSpawn fork+exec, or spawn, a subprocess as quickly as possible
root-tail Root-tail displays log files in the screen background - basically a graphical tail -f.
rxvt-unicode rxvt-unicode is a fork of the well known terminal emulator rxvt.
stableperl Stableperl is a fork, or a branch, of the official perl with the goal of providing stability and compatibility. See for details.
syncmail Unfinished, undocumented and not working.
thttpd A personally hacked version of thttpd, suitable for lots of file transfers (normal thttpd has problems with this).
Tree-M Perl interface to the broken M-Tree library by these italian guys...
Types-Serialiser This module is an utility module that provides a few simple datatypes, constants and a serialisation protocol for CBOR::XS. It could be used for other, similar, serialisation modules (such as JSON::XS), and would improve interoperability between those modules.
Urlader A self-unpacking archive that can be used for program deployment and upgrades.
Video-Capture-V4l Full-featured interface to Video for Linux, including real-time grabbing and jpeg compression, VPS etc. decoding and many sample scripts that facilitate automatica sender search and detection, EPG decoding and viewing and video grabbing.
vt102 vt102 is a vt100/102/131 hardware simulator, implementing practical and 100% compatible DEC VT terminal "emulation".
wvsniff Undocumented but nicely working wavelan sniffer that I wrote for use with my cisco aironet card. If you get it working, praise yourself.
xcb A fork of the unmaintained xcb (x cut buffers) program implementing better i18n.
XML-DB Undocumented, unreleased and unfinished Perl module implementing an "XML database", i.e. a tree-based database, on top of a conventional SQL database.