GC-free, high-performance D library: Containers, networking, metaprogramming, memory management, utilities.
Go to file
Eugen Wissner 10019d7df9 Add No Code of Conduct 2017-06-19 06:11:32 +02:00
source/tanya Add tanya.format.conv.to 2017-06-18 18:05:50 +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
CODE_OF_CONDUCT.md Add No Code of Conduct 2017-06-19 06:11:32 +02:00
LICENSE Initial commit 2016-08-24 18:07:18 +02:00
README.md Add os package# 2017-06-16 21:41:23 +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

README.md

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.
  • os: Platform-independent interfaces to operating system functionality.

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.