-
Notifications
You must be signed in to change notification settings - Fork 13
PureLibraries
- Terminology
- PureLibraries Documentation
- Use of Third Party Libraries
- Table of PureLibraries
- Table of Third Party Libraries
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.
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.
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.
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.
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 |
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:
- License file for PureBASIC applications (without using 3D engine commands)
- License file for the 3D engine integrated with PureBASIC