GC-free, high-performance D library: Containers, networking, metaprogramming, memory management, utilities.
Go to file
Eugen Wissner 70e96c62b3 Make Unique.get and RefCounted.get return inout
Also revert the renaming of Scoped to Unique. And rename the whole
module to memory.smartref.
2017-06-14 22:11:57 +02:00
source/tanya Make Unique.get and RefCounted.get return inout 2017-06-14 22:11:57 +02:00
.editorconfig Add editorconfig 2017-05-11 13:57:24 +02:00
.gitignore Test x86-64 on Windows 2017-06-13 12:17:14 +02:00
.travis.yml Generate coverage for x86 aswell 2017-06-13 10:45:15 +02:00
appveyor.yml Test x86-64 on Windows 2017-06-13 12:17:14 +02:00
codecov.yml Test x86-64 on Windows 2017-06-13 12:17:14 +02:00
dub.json Update 2.074 compiler 2017-06-02 22:01:13 +02:00
LICENSE Initial commit 2016-08-24 18:07:18 +02:00
README.md Update README description 2017-06-07 08:04:50 +02:00

Tanya

Build status Build status codecov Dub version Dub downloads 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.

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 (allocators, smart pointers).
  • 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
BitArray bitvector bitvector bitvector
TLS crypto crypto crypto
File IO io io io

Further characteristics

  • Tanya is a native D library without any external dependencies.

  • 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.