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.
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.
Here is a brief run-down of some of the features of The FreeBASIC Extended Library grouped by category:
- 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..)
- 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.
- 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.
- Create variable-length arrays, lists, stacks, queues and hashtables.
- Custom memory allocation strategies are supported.
- 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.
- 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.
- Worry-free dynamic memory and resource usage with smart pointers for scoped and shared resources.
- 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.