The BeOS API, often called the Be API after Be Inc., is the application programming interface required to write graphical native applications on BeOS, and hence its derivatives such as Haiku and ZETA. The API is divided into a number of "kits", which collect related classes together and bear some relation to the library which contains the supporting code. It is almost entirely C++, with third-party bindings for most classes in Python and a tiny subset of classes, mostly Storage kit related, in Perl. Kits The Application kit contains the basic classes required to launch a BeOS application, as well as support for the global clipboard, inter-application and internal messaging, timers, rosters and other functions seen as required to support any graphical application. Application kit classes are supported by libbe.so. The Storage kit provides methods related to access to the file system, including manipulating files, navigating the file system hierarchy, creating and managing symlinks, dealing with file open/save panels for graphical applications, as well as dealing with Be File System attributes. Storage kit classes are mostly in libtracker.so, Tracker being the native file manager on the OS. The Interface kit provides a large collection of widgets for building graphical applications from the main window class down to dialogue boxes, including font handling, drawing operations and rendering control. The majority of libbe.so comprises this kit. In the Haiku version of the API, it adds the Layout API, that provides tools to design user interfaces. The Kernel kit provides threading, semaphores and the ability to access system information, and is also in libbe.so. The Support kit provides more advanced functions which do not readily fall into another kit, such as assisted memory allocation and list support. The Network kit provides either a rudimentary (BeOS R5 and lower) or almost complete (BeOS Dano and higher) implementation of Berkeley sockets and BIND as well as "native" functions based on the Nettle C++ networking library. libnet.so provides the Berkeley sockets on R5, later replaced by the more common libsocket/libbind.so nomenclature; and libnetapi on R5, later replaced by libbnetapi provides the modified version of Nettle. The Mail kit provides a native email format as well as a way to use the system to fetch and receive email using standard protocols (POP3 and SMTP). The Mail kit is supported in libmail.so. The Translation kit provides a method whereby both images and plain text formats are handled by