# About

NSTD is a library that is meant to be cross-platform, and fairly safe (any function that can fail
will return an error code indicating if it has or hasn't) while having a plethora of features and
functionality. The goal is to have one API for any platform, any language, and any use case.

# Platform support

The `core` module can be used ***ANYWHERE***. It doesn't rely on ***ANY*** other libraries,
including standard libraries. Other modules will work on *most* platforms and have been tested to
build for Windows, macOS, Linux, and Redox.

# Module overview

- `nstd`
    - `alloc`
        - `heap`
    - `audio`
    - `collections`
        - `vec`
    - `core`
        - `char_types`
        - `def`
        - `float_types`
        - `int_types`
        - `math`
        - `platform`
        - `pointer`
        - `range`
        - `slice`
        - `str`
    - `env`
    - `events`
    - `fs`
    - `gl`
    - `gui`
    - `image`
    - `input`
        - `key`
        - `mouse`
        - `touch`
    - `io`
    - `math`
    - `net`
    - `os`
    - `proc`
    - `str`
    - `thread`
    - `time`

# How to build

```
cargo build --release --features ""
```
Where after "--features", inside the quotation marks, you would list each module seperated by spaces
and prefixed with "nstd_". nstd_core is built by default. For building nstd as a C library, you
should also use the "clib" feature, to build the module for C ABI.

Example:
```
cargo build --release --features "clib nstd_io nstd_str"
```
Alternatively you can also use
```
cargo build --release --all-features
```
to build with all modules.