-
-
Notifications
You must be signed in to change notification settings - Fork 33
Home
Timur Gafarov edited this page May 4, 2019
·
90 revisions
dlib is a growing collection of native D language libraries that implement common functionality (read below about our definition of "common"). It is useful for various higher-level projects - such as game engines, rendering pipelines and multimedia applications.
Currently dlib contains the following packages:
- dlib.core - modules that are widely used by other packages
- dlib.memory - allocators and memory management functions
- dlib.container - containers and data structures
- dlib.filesystem - abstract FS interface and its implementations for Windows and POSIX filesystems
- dlib.math - linear algebra and numerical analysis (vectors, matrices, quaternions, etc.)
- dlib.geometry - computational geometry (ray casting, primitives, intersection, etc.)
- dlib.image - image processing (filters, color correction, FFT, HDRI, graphics formats I/O, support for 8 and 16-bit RGBA buffers and floating point operations)
- dlib.audio - sound processing (synthesizers, audio formats I/O)
- dlib.network - networking and web functionality
- dlib.async - event loop and asynchronous programming capabilities (not available in master branch)
- dlib.serialization - data serialization (currently includes lightweight XML parser)
- dlib.coding - data coding and compression algorithms
- dlib.text - text processing
- dlib.functional - some functional programming idioms (HOFs, combiners, quantifiers, etc.).
Why dlib? Read the Rationale.
dlib can be used both in garbage-collected and GC-free applications. It is written in such way that GC-based functionality is straightforward and idiomatic, while using dlib without GC requires writing more verbose code.
Look Best Practices for more details on this topic.
On GitHub issue tracker, we use several labels to mark bugs and improvements:
- Breaking change. This is self-descriptive: an improvement that breaks backward compatibility;
- Bug. A bug that should be fixed without API change;
- Enhancement. A non-breaking improvement of existing functionality (e.g. optimization or a new feature);
- Missing. Appears when existing functionality is removed due to regressions and needs to be rewritten, or when some implementation is not complete;
- New functionality. Self-descriptive: a new functionality request.