diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..7441172 --- /dev/null +++ b/README.md @@ -0,0 +1,90 @@ +# libtnsl + +The official implimentation of the TNSL Standard Library + +`libtnsl` is a "batteries included" standard library which aims to keep these batteries as small as possible. + +To that end there are a variety of modules, some of which may be omitted for smaller but less capable distributions of the standard library. + +--- +## Module Groups + +Modules are grouped into `base`, `net`, or `full` groupings. Base is the core modules provided, net adds networking, and full is the complete set including graphics and audio. + +## Available Modules By Group + +### Base Modules +* `algo` + * common algorithms which act on types implementing the common library interfaces +* `box` + * common container types implementing the common library interfaces +* `crypto` + * cryptographic hash functions + * cryptographic keygen + * cryptographic signature generation and validation + * encryption and decryption standards +* `encoding` + * various data encoding types + * various file encoding helpers +* `internal` + * internal helpers for the library, not exported +* `io` + * streaming input and output for a variety of common operations + * file streaming helpers + * memory streaming + * device event streaming interface + * various protocols +* `lang` + * language constants + * any language feature support which relies on the std library lives here + * common interfaces used throughout the rest of the library +* `math` + * common math functions + * statistics + * vector and matrix types + * big number types +* `parallel` + * threading + * atomic primitives + * locking primitives + * threadsafe container types + * greenthread support for yield funcs as well as default scheduler implementation +* `random` + * prng for average use cases + * cryptographic prng + * access to sources of randomness +* `text` + * text encoding and decoding +* `time` + * time bases + * timestamps + * time formatting and translation between timezones + * system clock access + * timers + +### Net Modules +* `net` + * support for io pipes to TCP, UDP, and RAW internet sockets + * support for TLS using the base `crypto` module + * support for HTTP 1/2/3 protocol + * support for WebSockets + * support for a variety of other internet protocols + +### Full Modules +* `audio` + * support for audio playback through a graph based api with inputs, outputs, and transformers + * audio transformer and generator protocols + * support for a variety of sound formats + * support for loading sound formats from files +* `graphics` + * basic windowing support + * light wrappers over a variety of low level graphics libraries + * OpenGL + * OpenXR + * Vulkan + * direct draw into window buffers +* `ui` + * platform native UI engine + * similar to win forms, GTK, Qt, etc. has structured dialog and window layouts + * provides a default main event loop which calls to recievers + |