Page code :3


This page contains all you need to get started in Haiku software development.

(author note: 7/may/2010, in construction)

C++ Tools


Current Haiku releases contains both the gcc2 and gcc4 compilers. You can switch between the two by using the setgcc command.

~> setgcc -h
Usage: /bin/setgcc [ <arch> ] [ <gcc> ]

Sets the current gcc version, respectively prints it, if no arguments are

  <arch>  - The architecture to set. Supported values: "x86".
  <gcc>   - The major gcc version to set. Supported values: "gcc2", "gcc4".

(todo:rdef resources)


Haiku releases come with a programming editor named Pe. The command line editor nano is included as well. If you don't like it, you will probably find a port of your favorite editor like vim, emacs etc... which are available from HaikuPorts or software distribution sites. There are also several IDE projects in development by 3rd parties, such as Paladin.

Build Tools

The simplest way to get started is to use the makefile-engine "script" to build your program.

There is also a jamefile-engine, but it is not production-quality yet. Its status is mentioned on Ticket #5360.


The most accurate API documentation is the legacy BeBook. Although some new API's appeared with Haiku (or are in development), everything in the BeBook is still valid. A project to create a new API reference is still in its early stages, if you're interested please check out the Haiku Book

Another very practical resource is the source itself, fortunately there exist a tool to search the sources online, please visit the OpenGrok based Source Search

You can also browse the sources and changelogs using the Source Browser from

New API's

Some new C++ classes and protocols have been developed over time that were not part of the BeOS R5 API. Some are pretty new and experimental, others are well established and strongly recommended for use right now in your projects. Please visit the New API's page for more detail.

System Bugs

While developing your software you might have stumbled over a Haiku bug. Haiku is using the Trac system for bug tracking and patch submission. Please visit


For any question you might have, don't hesitate to ask on the 3rd party developer mailing list haiku-3rdparty-dev. You might also find some answers on the Haiku development mailing list haiku-development. Although this list should be used for development of Haiku itself, it is still a good resource as some 3rd party software development questions have been answered there in the past.


(author note: 7/may/2010, in construction, todo: new articles, old newletters)

Software Developer FAQ

(author note: 7/may/2010, in construction)

Coding Style

Use the style you like, but if you think your software might someday be included into the haiku codebase, it is a good idea to start coding with the same coding style. Please have a look at the Haiku Coding Guidelines.


If you'd like to port existing software to Haiku, please visit the HaikuPorts website where all porting efforts are coordinated. There's also a handy list of prebuilt binaries on the HaikuPorts download page

Other Languages

Programming for Haiku isn't limited to C++. Although other languages are currently limited to standard posix functionality (see _language bindings_), several ports exits and are maintained already. The R1/alpha2 release has Perl and Python installed by default.

For other languages please follow the porting efforts on HaikuPorts

An official Java port project exists but is still lacking developers, please visit the _project page_

Feel free to follow the Technical discussion related to the Haiku Port of OpenJDK or browse the source repository of the Haiku Port of OpenJDK.

(author note: 7/may/2010, todo: update links)

More Resources

Several places exist to help you host your project sources or distribute your software. (Those are not maintained by the Haiku project)

Source Hosting hosting service dedicated to open source projects for Haiku. See their list of external projects too.

Software Distribution

Haikuware, software for Haiku.

BeBits, the old BeOS software site.

Legacy Docs

  • "Programming the Be Operating System" (mirror)