Drift Standard Libraries

From Drift Solutions Software & Development
Revision as of 04:03, 12 March 2020 by Driftsol (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The Drift Standard Libraries (aka DSL) are a collection of files that are useful in writing cross-platform code and save countless amounts of time in rewriting things for each of your projects.

DSL itself is licensed under a BSD 3-Clause license but does include some 3rd party code under various licenses as described below. (all core/included files use commercial-compatible licenses)

Download: GitHub
Documentation: https://dsldocs.driftsolutions.dev/

Included 3rd Party Code Licensing
Part Function License
base64 Base64 encoding/decoding BSD 3-Clause
getopt Version of getopt() for Windows MIT
PhysicsFS Byte swapping & UTF-8 validation zlib
strlcpy/strlcat Safer string copying/concatenation functions ISC
MD5 MD5 Hash function Public Domain
SHA-1 SHA-1 Hash function BSD 3-Clause
SHA-2 SHA-2 Hash functions BSD 3-Clause
SHA-3 SHA-3/Keccak Hash functions Public Domain

And with compile-time definitions can use optional 3rd party libraries for enhanced functionality or just providing easy to use wrappers around them:

Optional 3rd Party Library Licensing
Part Function License Define to Enable
OpenSSL TLS support for sockets class, additional hash/hmac functions Version Dependent ENABLE_OPENSSL
GnuTLS TLS support for sockets class, additional hash/hmac functions LGPL+ ENABLE_GNUTLS
zlib Compressed data streams in sockets zlib ENABLE_ZLIB
libcurl HTTP/HTTPS/FTP/etc. File downloads https://curl.haxx.se/docs/copyright.html ENABLE_CURL
libsodium BLAKE2b hashing, public key signing and encryption ISC ENABLE_SODIUM
PhysicsFS Enables support in our RWops system for PhyicsFS files. zlib ENABLE_PHYSFS
SQLite File-based SQL database Public Domain ENABLE_SQLITE
libmariadbclient SQL database client LGPL ENABLE_MYSQL
libmysqlclient SQL database client GPLv2 + Universal FOSS Exception ENABLE_MYSQL