README.md

# smut

[![Package Version](https://img.shields.io/hexpm/v/smut)](https://hex.pm/packages/smut)
[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/smut/)

Dirty, dirty: Shared MUTable state.

Currently this package only supports the `erlang` target, but it'll support
`javascript` eventually.

Obviously, this isn't _really_ shared, mutable state in the way that can
cause undefined behavior. On the Erlang target, the state is managed in
its own process, and updates and retrievals are managed through requests
to that process's mailbox, and are guaranteed to happen sequentially.

This package is not in any way for the kinds of optimizations that can
be perpetrated by using mutable state; if you're here for that, you're using
the entirely wrong language. This package is for ergonomy in dealing with
things like rate limiters in web servers, where multiple threads of
execution all need to be counting requests together.

`smut` is still under heavy development. Obviously.