Skip to content

Releases: bradley499/flitdb

FlitDB - v1.0

31 Jul 13:50
934321c

Choose a tag to compare

The official 1.0 release of FlitDB.

FlitDB is a new database format that focuses on making the overall database file as small as possible, whilst still holding data integrity. FlitDB stores data in the form of instructions to allow for the database to be interpreted; FlitDB uses instructions embedded into the actual database file, to aid with the reading, and writing of data on itself. The database does not include any null (or empty) values; this done to lower the total size of the database file. FlitDB can hold multiple different data types in its database: integers, floats, char arrays (strings), as well as boolean values; and all can be read back into memory from the associative API calls.

Database operations include:

  • Creation
  • Reading
  • Updating
  • Deletion

FlitDB is written in C, but there are exclusive C++ bindings available, such as dynamic overloading for the flitdb_insert. There is an assortment of functions that can be used, which are all in the file SYNTAX.md, both outlining their use and supported parameters.

Different compilation definitions are supported within FlitDB, which can be enabled and disabled - as appropriate. Such as defining the sizing modes (see table below) that the compilation can support, or the allowance of memory mapping read only files; for fast data retrieval.

Mode Limitations Maximum size
FLITDB_SIZING_MODE_BIG Default - allows for writing up to 65536 columns (and even more with FLITDB_UNSAFE), and up to 65536 rows. 281.47 TB
FLITDB_SIZING_MODE_SMALL Allows up to 256 columns and rows. Cannot be used in conjunction with FLITDB_UNSAFE. 4.26 GB
FLITDB_SIZING_MODE_TINY Allows up to 16 columns and rows. Cannot be used in conjunction with FLITDB_UNSAFE. 14.74 MB

The FlitDB API can be embedded into any C, or C++ project, and even be dynamically linked to a project as a shared library.

v0.6: Merge pull request #4 from bradley499/dev

25 Jul 11:09
a24d2ad

Choose a tag to compare

Improved the compilation of FLITDB_SIZING_MODE to use data types that fit within the limit of the bounds set; resulting in a lower memory use. Additionally the move from the use of a statbuf towards an access verification to check if file exists, resulted in a faster file existence lookup, whilst using less memory.

Bug fixes:

  • Fixed issue with rewriting of boolean values in the same column and row.

v0.5

15 Jun 15:08

Choose a tag to compare

v0.5 Pre-release
Pre-release

Improved the handling of positional values, and added validation to regulate the limits imposed by the database. Additional compilation assists were implemented to limit the scope and sizing of a FlitDB database, this can be done within the file flit.h by defining FLITDB_SIZING_MODE to either:

  • FLITDB_SIZING_MODE_BIG
  • FLITDB_SIZING_MODE_SMALL
  • FLITDB_SIZING_MODE_TINY

Which limit the size of the database available to operate on, but additionally regulating the types of the variables used, which will provide useful on less powerful hardware.

Additional changes were made in order to improve the total amount of default values that can be stored, as with the definition of the FLITDB_SIZING_MODE, there are now new sizing regulations that are put in place:

Mode Limitations
FLITDB_SIZING_MODE_BIG Default - allows for writing up to 65536 columns (and even more with FLITDB_UNSAFE), and up to 65536 rows.
FLITDB_SIZING_MODE_SMALL Allows up to 256 columns and rows. Cannot be used in conjunction with FLITDB_UNSAFE.
FLITDB_SIZING_MODE_TINY Allows up to 16 columns and rows. Cannot be used in conjunction with FLITDB_UNSAFE.

General bug fixes and changes also apply in this release.

v0.4

10 Jun 18:03

Choose a tag to compare

v0.4 Pre-release
Pre-release

Further improvements to the handling of char arrays (strings); can now be up to 65535 characters long. Additional fixes were made to the buffer size, which is now restored to 1024 bytes in length. Testing has also been refined by moving validation data to the heap; as well as adding more tests.

v0.3

07 Jun 18:20

Choose a tag to compare

v0.3 Pre-release
Pre-release

Improved and fixed writing to the database.

Bug fixes:

  • Improved handling of zero length char arrays - by default will equate to a null value entry, resulting in the prevention of storing no data.
  • Fixed the issues with writing floats to the database.

v0.2

07 Jun 14:32

Choose a tag to compare

v0.2 Pre-release
Pre-release

Complete rewrite of the way FlitDB stores data (all previous databases created are unfortunately no longer supported - migration to latest format is advised), and improved efficiency of read/write operations; as well as an overall smaller compilation size. Also there has been a removal of the storing of both: double, and long long; data types, this was done to improve read/write operations, as well as to avoid potential issues with unsolicited casting of data types, use float or int instead.

FlitDB can now store up to 4,294,836,225 values, and can store even more (if instantiated with FLITDB_UNSAFE).

FlitDB can be both compiled into a shared library, and also directly into your projects. Support is currently in place for UNIX based systems; however FlitDB is currently supported on: Linux, and Mac OS.

Initial release

05 May 08:18

Choose a tag to compare

Initial release Pre-release
Pre-release

The initial release of FlitDB!

Database operations include:

  • Creation
  • Reading
  • Updating
  • Deletion

FlitDB can safely store up to 10 million values, and can store even more (if instantiated with FLITDB_UNSAFE). FlitDB can be both compiled into a shared library, and also directly into your projects. Support is currently in place for UNIX based systems; however FlitDB is currently supported on: Linux, and Mac OS.