Skip to content
tajmone edited this page Dec 31, 2016 · 5 revisions

About PureLibraries

The term “PureLibraries” refers to PureBASIC’s built-in libraries that provide commands and functionalities in specific areas – eg. RegularExpression PureLibrary handles regular expressions, List handles linked-lists, FileSystem handles file system operation, and so on.

PureLibraries are stored in the PureLibraries subfolder of PureBASIC installation path. For each PureLibrary mentioned in the documentation there is a correspondingly named file in the PureLibraries folder.

The required PureLibraries are included (linked) in the final compiled application – eg. if your program uses regular expressions, the compiler will include the RegularExpression PureLibrary into the output binary file by statically linking it – with a few exceptions, like Scintilla for Windows which uses a dynamic libary (a DLL) instead of a static one.

Inclusion (linking) of PureLibraries in the final compiled binary file is handled transparently by PureBASIC. The users doesn’t need to place any C-style “include” directives: the compiler will automatically detect the required components based on the commands found in the source code.

Terminology

The term “PureLibraries” is a convenience to avoid confusion and conflicts with system libraries (eg. FileSystem PureLibrary vs native OS FileSystem libraries). It also avoids confusion with the original third party libraries they are built on top of (eg. Scintilla PureLibrary vs original Scintilla C++ library).

Usually, unless the context demands disambiguation, “PureLibraries” are simply referred to as “PureBASIC libraries,” “PureLibs” or just “libraries” – when you read on the forums a discussion about the Scintilla library, it is usually implied to refer to the Scintilla PureLibrary. The same applies to PureBASIC’s documentation.

PureLibraries Documentation

PureBASIC’s documentation groups PureLibraries under three main “libraries” sections:

  • General Libraries
  • 2D Games & Multimedia Libraries
  • 3D Games & Multimedia Libraries

The single entries under these sections correspond to PureBASIC’s PureLibraries. For example, you’ll find under “2D Games & Multimedia Libraries”:

  • 2D Games & Multimedia Libraries
    • Joystick
    • Keyboard
    • Mouse

Which means that Joystick, Keyboard and Mouse are the actual names of PureLibraries. By exploring each entry you can learn which commands and functionalities are offered by these PureLibraries.

Use of Third Party Libraries

PureBASIC uses third party open source libraries to implement its PureLibraries. For example, the Regular Expression PureLibrary relies on the PCRE (Perl-Compatible Regular Expressions) library – a famous open source library for regular expressions, employed in many softwares. PureBASIC’s Database library uses SQLite and PostgreSQL libraries; PB’s Scintilla library and gadget use Scintilla library; PureBASIC’s XML library uses the expat XML parser; and so on.

The presence of these third party components/libraries is the resason why you have to include a license file with your compiled applications.

Table of PureLibraries

Here is an incomplete list of PureLibraries (PB 5.50) along with the third components used by them.

PureLibrary 3rd party description category
Engine3D OGRE 3D Games & Multimedia
RegularExpression PCRE Perl-Compatible RegEx General libraries
Scintilla Scintilla Source code editing component General libraries
Database libpq PostgreSQL database General libraries
Database SQLite SQLite database General libraries

Table of Third Party Libraries

Here is an incomplete list of the third libraries used by PureLibraries (PB 5.50).

Unfortunately, PureBASIC documentation doesn’t mention which version of the libraries is in use. For some libraries, there are code hacks to get the version by querying the library itself. Sometimes PureBASIC release notes and News feeds mention libraries version upgrades.

A “(?)” in this table indicates that the version number provided is not 100% confirmed (it might be desumed from the links provided in PureBASIC’s documentation, which sometimes point to a specific version of a library).

library version released description
libpq 8.4 (?) PostgreSQL database (ORDBMS)
PCRE 8.30 2012-02-04 Perl-Compatible Regular Expressions
Scintilla 3.4.2 2014-05-22 Source code editing component
SQLite 3.13.0 2016-05-18 SQLite database (RDBMS)

A full list of third party components used by PureBASIC can be found in the licenses files: