70 lines
3.9 KiB
Markdown
70 lines
3.9 KiB
Markdown
# Tanya
|
|
|
|
[](https://travis-ci.org/caraus-ecms/tanya)
|
|
[](https://ci.appveyor.com/project/belka-ew/tanya/branch/master)
|
|
[](https://codecov.io/gh/caraus-ecms/tanya)
|
|
[](https://code.dlang.org/packages/tanya)
|
|
[](https://code.dlang.org/packages/tanya)
|
|
[](https://raw.githubusercontent.com/caraus-ecms/tanya/master/LICENSE)
|
|
|
|
Tanya is a general purpose library for D programming language.
|
|
|
|
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.
|
|
|
|
* [Bug tracker](https://issues.caraus.io/projects/tanya/issues)
|
|
* [Documentation](https://docs.caraus.io/tanya)
|
|
|
|
## Overview
|
|
|
|
Tanya consists of the following packages:
|
|
|
|
* `async`: Event loop (epoll, kqueue and IOCP).
|
|
* `container`: Queue, Array, Singly and doubly linked lists, Buffers, UTF-8
|
|
string, Hash set.
|
|
* `math`: Arbitrary precision integer and a set of functions.
|
|
* `memory`: Tools for manual memory management (allocator, reference counting,
|
|
helper functions).
|
|
* `network`: URL-Parsing, sockets, utilities.
|
|
|
|
### Supported compilers
|
|
|
|
| dmd |
|
|
|:-------:|
|
|
| 2.074.1 |
|
|
| 2.073.2 |
|
|
| 2.072.2 |
|
|
| 2.071.2 |
|
|
|
|
### Current status
|
|
|
|
Following modules are under development:
|
|
|
|
| Feature | Branch | Build status |
|
|
|--------------|:------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
| BitVector | bitvector | [](https://travis-ci.org/caraus-ecms/tanya) [](https://ci.appveyor.com/project/belka-ew/tanya/branch/bitvector) |
|
|
| TLS | crypto | [](https://travis-ci.org/caraus-ecms/tanya) [](https://ci.appveyor.com/project/belka-ew/tanya/branch/crypto) |
|
|
| File IO | io | [](https://travis-ci.org/caraus-ecms/tanya) [](https://ci.appveyor.com/project/belka-ew/tanya/branch/io) |
|
|
|
|
### Further characteristics
|
|
|
|
* Tanya is a native D library.
|
|
|
|
* Tanya is cross-platform. The development happens on a 64-bit Linux, but it
|
|
is being tested on Windows and FreeBSD as well.
|
|
|
|
* The library isn't thread-safe yet.
|
|
|
|
## Release management
|
|
|
|
3-week release cycle.
|
|
|
|
Deprecated features are removed after one release (in approximately 6 weeks after deprecating).
|
|
|
|
## Contributing
|
|
|
|
Feel free to contact me if you have any questions: info@caraus.de.
|