README.md

# SilverOrb

A standard library for Orb.

The docs can be found at <https://hexdocs.pm/silver_orb>.

WebAssembly is low level — you essentially get to define global variables, an array of memory, and some functions to operate on them. It’s not batteries-included.

SilverOrb provides several extra batteries so common tasks are easier. They are:

- `Arena` allocator for memory management.
- `ASCII` (coming soon) for operating on ASCII strings.
- `UTF8` (coming soon) for operating on UTF-8 strings.
- `IntFormatter` for converting integers to strings.
- `IntParser` (coming soon) for converting strings to integers.
- `StringBuilder` for assembling strings from dynamic parts.
- `XMLBuilder` (coming soon) for assembling XML from dynamic parts.
- `FormData` (coming soon) for decoding/encoding `application/x-www-form-urlencoded` strings.
- `URLSearchParams` (coming soon) for decoding/encoding URL query strings.
- `URL` (coming soon) for decoding/encoding URLs.
- `Request` (coming soon) for encoding HTTP/1 requests.
- `Response` (coming soon) for encoding HTTP/1 responses.
- `Iterator` (coming soon) for creating a custom sequence type that can be iterated through.

## Installation

The package can be installed by adding `silver_orb` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:silver_orb, "~> 0.0.6"}
  ]
end
```

## Inspiration

- https://www.rfleury.com/p/untangling-lifetimes-the-arena-allocator