Tango Features
Tango is a library with two functions:
- It is a complete runtime for the D programming language
- It provides a sizable set of programmer friendly modules
The Tango project also tries to provide quality documentation for as large portions of the library as possible.
Runtime library
- Thread:
- Thread local storage
- Fibers
- Garbage Collector:
- One implementation for all platforms and compilers
- A consistent API that should accomodate for additional GC implementations with different characteristics
Public API
- Core functionality
- Arrays, BitArrays and other low level routines
- Variant type
- Containers
- A comprehensive set of containers inspired by Doug Lea's work
- I/O
- A flexible and efficient framework that adapts well to all kinds of I/O
- Simple stream wrappers for most common tasks
- Easy filtering of data using the same streams
- Protocols for reading and writing data
- Non-blocking IO using efficient selectors
- Extensive digest and compression suite; ciphers and encoding planned
- VFS
- Virtual File System with adapters for local filesystems, zip archives and FTP sites
- C API
- Full set of Posix headers
- Logging framework
- Inspired by Log4J
- Math
- Standard math functionality completely implemented in D
- Provides almost all functionality from the IEEE 754R draft standard (including the optional extensions)
- First standard library to make use of NaN payloads
- API is structured for comprehensibility and for significant future expansion
- BigInt
- Meta functionality
- Type traits
- Net
- TCP/IP streams, Datagram and Multicast support along with DNS resolution etc.
- Classes to accommodate low level networking and to further integrate with the I/O framework
- FTP client
- HTTP client
- System
- Comprehensive set of bindings to common C API's like Standard C, Posix and Win32
- Inventive process manipulation, that use the I/O framework to handle the pipes
- Text tools
- Conversion to and from basic types and strings
- Formatting, using a new and more flexible format string format
- Stream iterators
- Unicode handling
- Text utility functions
- Synchronization
- Various thread-synchronization primitives
- Localization
- Modules to facilitate localized output
- Date & Time
- UTC and local clocks, DateTime, calendars, StopWatch timer and more
- Utilities
- Path operations, argument parsing and conversion to and from all types
Documentation
- Examples
- Tutorials
- A reference manual