README.md

# Dave

Discord DAVE protocol library via NIF bindings to the `davey` Rust crate

## Installation

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

```elixir
def deps do
  [
    {:dave, "~> 0.1.0"}
  ]
end
```

This package depends on `rustler_precompiled` so you don't need a Rust toolchain to compile your projects.

## Purpose

DAVE stands for Discord Audio & Video End-to-End Encryption - perhaps they should have named it DAVEEE. 
It's an E2EE protocol based on MLS that will soon be required by all Discord Voice sessions.

This library defines a number of NIFs that leverage the Rust crate [davey](https://github.com/Snazzah/davey/). 
It is primarily for [nostrum](https://github.com/Kraigie/nostrum), but you may wish to use it to roll your own Elixir Discord library.
Documentation will be limited to little more than type specs for now.