D library with event loop
To use this package, run the following command in your project's root directory:
Put the following dependency into your project's dependences section:
Tanya is a general purpose library for D programming language that doesn't rely on the Garbage Collector.
Its aim is to simplify the manual memory management in D and to provide a guarantee with @nogc attribute that there are no hidden allocations on the Garbage Collector heap. Everything in the library is usable in @nogc code. Tanya extends Phobos functionality and provides alternative implementations for data structures and utilities that depend on the Garbage Collector in Phobos.
Tanya consists of the following packages:
async: Event loop.
container: Queue, Vector, Singly linked list.
crypto: Work in progress TLS implementation.
math: Multiple precision integer and a set of functions.
memory: Tools for manual memory management (allocator, reference counting, helper functions).
network: URL-Parsing, sockets.
The library is currently under development, but some parts of it can already be used.
Containers were newly reworked and the API won't change significantly, but will
be only extended. The same is true for the
async packages should be reviewed in the future and the API may
math package contains an arbitrary precision integer implementation that has
a stable API (that mostly consists of operator overloads), but still needs
testing and work on its performance.
I'm currently mostly working on
crypto that is not a complete cryptographic
suite, but contains (will contain) algorithm implementations required by TLS.
Tanya is a native D library (only D and Assembler are tolerated).
It is important for me to document the code and attach at least a few unit tests where possible. So the documentation and usage examples can be found in the source code.
Tanya is mostly tested on a 64-bit Linux and some features are platform-dependant, but not because it is a Linux-only library. Therefore any help to bring better support for Windows and BSD systems would be accepted.
The library isn't thread-safe. Thread-safity should be added later.
I'm working with the latest dmd version, but will be looking to support other D compilers and keep compatibility with the elder dmd versions in the future.
Since I'm mostly busy writing new code and implementing new features I would appreciate, if anyone uses the library. It would help me to improve the codebase and fix issues.
Feel free to contact me if you have any questions.
- Registered by Eugene Wissner
- 0.1.2 released 5 years ago
- (c) Eugene Wissner <email@example.com>