mowgli development framework (version 2) -- generic runtime for atheme applications
C Shell M4 Makefile C++
Latest commit 57d8873 Sep 4, 2016 @maxteufel maxteufel README: remove broken link
This link is unavailable, and probably won't be up at the same location,
if at all, again. Remove it.

Fixes atheme/libmowgli-2#38 ("README “More information is available at”
link broken")
Failed to load latest commit information.
doc docs updates. May 16, 2012
m4 Make atomic.h use machine.h instead of the autoconf macro Mar 29, 2012
scripts update copyright on this. May 16, 2012
src Fix up several minor code quality problems that trigger clang warnings May 17, 2016
.gitignore Update jsontest example for the new serialization interface Jan 20, 2013
AUTHORS docs updates. May 16, 2012
BSDmakefile Add BSDmakefile to redirect to gmake Mar 20, 2013
COPYING Update copyrights to 2012. Mar 8, 2012
GIT-Access docs updates. May 16, 2012
Makefile libmowgli-2 begins. Sep 26, 2011
README README: remove broken link Sep 4, 2016 Oops. Forgot "%s" in's printf. Feb 27, 2012 buildsys: update to atheme version Apr 18, 2012
config.guess Update config.{guess, rpath, sub} and install-sh Mar 1, 2012
config.rpath Update config.{guess, rpath, sub} and install-sh Mar 1, 2012
config.sub Update config.{guess, rpath, sub} and install-sh Mar 1, 2012
configure configure: update version to 2.1.0 Apr 6, 2016 configure: update version to 2.1.0 Apr 6, 2016 Only build static and shared objects on demand Mar 18, 2012
install-sh Update config.{guess, rpath, sub} and install-sh Mar 1, 2012
uncrustify.cfg By request of mogri, spaces after cast Mar 12, 2013


libmowgli - A useful collection of routines for programming

libmowgli is a free but copyrighted library, check COPYING for details.


1. What is libmowgli?
2. Installation
3. Bug Reports

What is libmowgli?

libmowgli is a class library containing performance and usability oriented
extensions to C.

It contains:
    - mowgli.alloc: A safe wrapper around malloc/free.
    - mowgli.argstack: Safe serialization of valists.
    - mowgli.assert: Various assertion routines that can be used.
    - mowgli.bitvector: Bitmasks with an unlimited level of precision.
    - mowgli.patricia: A dictionary implementation based on a modified
                       patricia tree algorithm (uses nibbles instead of
                       bits for branching).
    - mowgli.error_backtrace: Provide feedback to users on what caused
                              the error they are recieving.
    - mowgli.formatter: A simple token formatter which is sometimes useful.
    - mowgli.global_storage: A simple global storage library.
    - mowgli.hash: A portable implementation of the FNV-1 hash.
    - mowgli.heap: An optimistic heap-based memory allocator
    - mowgli.hook: A simple hooks API you can use for your application,
                   which allows for hooks to provide both application
                   data and user data.
    - mowgli.json: A simple, flexible, reentrant JSON parser
    - mowgli.list: A high performance linked lists implementation with
                   O(1) scalability for most common operations.
    - mowgli.logger: An internal class for handling logging of exceptions.
    - mowgli.module: A wrapper around dlopen(3) and dlsym(3).
    - mowgli.object: A simple class which provides reference counted
                     pointers and polymorphism of structs.
    - mowgli.object_class: Classing and subclassing for objects.
    - mowgli.object_metadata: Metadata for objects.
    - mowgli.object_messaging: Messaging and signalling for objects.
    - mowgli.queue: A simple class which implements double-ended queues.
    - mowgli.random: A high performance psuedo-random number generator.
    - mowgli.signal: A wrapper for sigaction(2).
    - mowgli.eventloop: A portable event loop implementation.
    - mowgli.vio: An abstraction layer for I/O.
    - mowgli.linebuf: A line-buffering implementation for clients.
    - mowgli.thread: Minimal thread abstraction.

More classes will be added with later releases. Please use GitHub's
issue tracker if you have suggestions on what should be implemented.


Installation is fairly typical:

  $ ./configure
  $ make
  $ sudo make install

(If sudo isn't on your system, su to root. On GNU systems you can even do
"su -c 'make install'", which is basically the same thing as using sudo.)

Bug Reports

Bugs can be reported using the GitHub issue tracker on the libmowgli-2
project page: