Allegro is a free and open source software library for video game development.
The functionality of the library includes support for basic 2D graphics, image manipulation, text output, audio output, midi music, input and timers, as well as additional routines for fixed-point and floating-point matrix arithmetic, unicode strings, file system access, file manipulation, data files, and (limited, software-only) 3D graphics.
As of version 4.0, programs that use the library work on DOS, Microsoft Windows, BeOS, Mac OS X, and various Unix-like systems with (or without) X Window System, abstracting their application programming interfaces (APIs) into one portable interface. There is also an independent port of Allegro on AmigaOS.
The library is written in the C programming language and designed to be used with C or C++. It comes with extensive documentation and many examples.
The community of Allegro users have contributed several library extensions to handle things like scrolling tile maps, import and export of various file formats (e.g. PNG, GIF, JPEG images, MPEG video, Ogg, MP3, IT, S3M, XM music, TTF fonts, and more). There also are bindings for several programming languages available, like Python, Perl, Scheme, C#, D and others.
Allegro can be used in conjunction with OpenGL by using the library AllegroGL which extends Allegro's functionality into OpenGL and therefore the hardware.
The current version of Allegro is 4.3.10 stable. Following this release, the development roadmap calls for a shift to the so-called "new" API branch (also known as the 4.4.x series), This is similar to 4.2, except that it is bundled with some common addon libraries that can be built along with Allegro. Backwards compatibility will be maintained through an extra API layer emulating the old API. Work on the new API branch started in parallel with the 4.1.x series, meaning that a lot of the codebase has already been rewritten.
For hardware accelerated 3D and 2D acceleration on Linux, Mac OS X and DOS, AllegroGL and OpenLayer are available. They are two add-on libraries that use OpenGL for accelerated graphics routines and use Allegro for all other gaming needs. Note that, combined with Glide and MesaFX (using 3dfx hardware), AllegroGL is one of the few available opensource solutions for hardware accelerated 3D under DOS.