A game programming library

GitHub project

Gna project

Language bindings

Although Allegro is written in C and C++, and is mainly designed to be used from such, it's possible to use Allegro from other programming languages.

If you would like to add a link to this page, or there is a dead link which should be fixed/removed, please use the address given at the bottom of the page to contact the webmaster and report the change.

Bindings for Allegro 5

Lua binding to Allegro 5 by Trezker.
Chicken Scheme
Binding for Chicken Scheme by Daniel Leslie.
Bindings for Common Lisp by resttime.
D binding to Allegro 5 by SiegeLord.
Go binding to Allegro 5 by Damien Radtke.
Java binding to Allegro 5.2 by Jason Winnebeck.
The Allegro 5 distribution comes with a basic Python wrapper; see the python directory.

Bindings for Allegro 4


Leonid Dulman has worked on providing an ADA-95(2005) interface for the Allegro game library.


alBitmap is a C++ Wrapper for the Allegro BITMAP datatype. Features built-in memory allocation/deallocation, inlined functions for bitmap creation, loading, saving, blitting, comparing, plus some convenience functions for printing text with STL's string type.
Allegro Simplificator
Allegro Simplificator is a C++ wrapper. It provides classes for most Allegro functions and adds some new functionality (cross-platform networking). It comes with some examples and extensive documentation.


AllegNet is a .NET library, coded in C# 2.0 based on Allegro 4.2.0. With AllegNet you can build your own video game in full managed code. So you can use this to build C#, vb.net, J# and C++ managed games.
Mallegro (or Managed Allegro) is a .NET wrapper for Allegro written by Michael Jensen. It promises making Allegro available to C# and VB.NET developers.
Sharp Allegro aims to ease game development in C# by using well developed libraries such as Allegro, AllegroGL, MASkinG, and so on.
SharpAllegGL is a .NET wrapper around AllegroGL library, addon of Allegro game development library.


Tydr Schnubbis organised an effort to be able to use Allegro from the D programming language.


Common Lisp FFI for Allegro
cl-alleg provides a foreign function interface for the Allegro games library. This is built on top of CFFI and so should be portable across multiple common lisp implementations. The author also writes a cl-alleg game development blog at http://gameylisp.blogspot.com/.


The goal of the LuAllegro project is to provide a free multi-platform graphics library for Lua. Of course, Allegro is used for this purpose.


Mercury-Allegro provides a fairly complete set of bindings to Allegro and AllegroGL for the Mercury programming language. It's available as part of the mercury-extras ROTD (release-of-the-day) distributions on the Mercury web site.


Allegro.pas is a wrapper to use Allegro with Pascal compilers like Delphi or Free Pascal.


A Perl interface to Allegro written by Colin O'Leary.


This page hosts all available Python bindings. There are currently two projects: Alpy (a pure C interface) and PyAlleg (a Pyrex interface).


Allegro scheme is a set of MzScheme bindings to Allegro written by Jon Rafkind. Using MzScheme's nice FFI library it is very easy to bind scheme to any C library. There is a set of bindings directly to Allegro in allegro.ss and a scheme wrapper which should make it easier to use in image.ss.

Other resources

Wiki page about bindings
The Wiki also has a page about language bindings. Because everyone can edit it, it may have additional links not listed here. But they may not work or point to abandoned or very work in progress work.