Welcome to the home of The FreeBASIC Extended Library!

Update

As of commit bda3af4e5 the library is building with no unknown issues with FreeBASIC 1.00.0. There are still some failing test cases that are left over from the last release but work has resumed on them. You can see a list at our bug tracker on GitHub.

We need your help

The FreeBASIC Extended Library is always looking for new submissions. Submissions do not necessarily need to be code, in fact our primary concern at the moment is improving the documentation. We feel the best way to improve the documentation is with more tutorials and a User's Guide that combines an overview of the api (the what) of the modules with the why, the how and the when. So if you are handy with a text editor and know your way around a certain part of the library, please help us out by writing a tutorial or an in-depth article about a submodule/class/set of functions. After review, your submission may be added to the User's Guide. Thank you for your time and I hope you enjoy using the FreeBASIC Extended Library as much as we have enjoyed working on it!

What is it?

The FreeBASIC Extended Library aims to provide a portable, community-driven set of libraries designed exclusively for FreeBASIC development, and includes many commonly used game-oriented and general purpose APIs written by the community and licensed under a BSD type license to maximize user freedom.

What can it do?

Designed to be an effective "all-in-one" set of libraries, The FreeBASIC Extended Library can improve quality and production of your FreeBASIC projects by providing common functionality that is tuned to be fast. The FreeBASIC Extended Library is very modular with few inter-dependencies so you do not need to distribute a large DLL for the extra functionality.

Many libraries within The FreeBASIC Extended Library make use of ext/Templates, a header-only library containing macros that enable generic programming similar to that of C++, allowing you to write more reusable code faster.

Head to the Downloads area for the latest sources, pre-built binaries and documentation. Users are encouraged to join our discussion forum.


Here is a brief run-down of some of the features of The FreeBASIC Extended Library grouped by category:

  • Graphics and Games

    • Rotate, scale and manipulate BMP, GIF, JPG, PNG, and TGA images.
    • Draw animated sprites with pixel-perfect collision detection.
    • Use TrueType fonts (TTF) with FreeBASIC's Draw String statement.
    • 2D, 3D and 4D generic vector classes.
    • OpenGL-compatible 4x4 matrix class. (more on the way..)
  • Data Storage

    • Create and edit simple non-validating DOM XML documents, on-disk or in-memory.
    • Create and edit JSON/BSON documents, on-disk or in-memory.
    • Access information stored in common databases including MySQL, SQLite3 and PostgreSQL.
    • Create and access files archived in the widely used ZIP format.
  • Network Programming

    • Included is a powerful and easy to use network library providing both low-level and high-level network access.
    • Helpers exist for common protocols like HTTP.
  • Generic Container Classes

    • Create variable-length arrays, lists, stacks, queues and hashtables.
    • Custom memory allocation strategies are supported.
  • Generic Programming and Metaprogramming

    • Most algorithms from the C++ Standard Library are included: copy, find, fill, transform, among many others.
    • Sorting algorithms include gnome and quicksort.
    • Create C++-like parameterized procedures and classes.
    • Automate common tasks and minimize code duplication.
    • Write type-dependent code with the preprocessor.
  • Testing and Debugging

    • Ensure program correctness with a built-in unit testing framework.
    • Detect and plug up hidden memory leaks.
    • Utilize the built-in logging module for simple or advanced logging.
  • Memory Management

    • Worry-free dynamic memory and resource usage with smart pointers for scoped and shared resources.
  • Strings

    • ASCII-character string class makes string manipulation elegant.
    • Included are search, replace, reverse and split APIs, among many others.
    • Also included are most of the unique PHP string APIs.