Cattle is a toolkit for the Brainfuck programming language.

It can be embedded in any application to give it the ability to inspect and run Brainfuck programs; to make the interaction between the hosting application and the Brainfuck interpreter completely transparent, Cattle can be configured to use a custom set of I/O routines instead of the default ones.


Cattle can load and run virtually any Brainfuck program. The interpreter’s behavior can be altered by providing it a suitable configuration object: this way, compatibility with most other compilers and interpreters can be achieved.

Cattle is based on GObject, and its API should look familiar to anyone with some experience in the GNOME stack; GObject Introspection support means it’s possible to use Cattle from languages such as Scheme, Python and JavaScript.


You can either pick any of the released versions of Cattle from the releases section, or get a copy of the current development code from the Git repository.

If you’re interested in developing Cattle, or in developing using Cattle, be sure to check out the API reference, a copy of which you will also find in all release tarballs.