# `Murmur3`
[🔗](https://github.com/3zcurdia/murmur3/blob/main/lib/murmur3.ex#L1)

Murmur3 library for Elixir calling a Rust NIF as a wrapper and providing a more idiomatic API.

# `murmur3_x64_128`

```elixir
@spec murmur3_x64_128(binary(), integer()) :: {atom(), integer()} | {atom(), binary()}
```

Generates a x64 128-bit Murmur3 hash.

## Parameters

* `input` - The input to hash
* `seed` - The seed to use for the hash

## Examples

    iex> Murmur3.murmur3_x64_128("hello")
    {:ok, 121118445609844952839898260755277781762}
    iex> Murmur3.murmur3_x64_128("hello", 123)
    {:ok, 19243349499071459060235768594146641163}

# `murmur3_x86_32`

```elixir
@spec murmur3_x86_32(binary(), integer()) :: {atom(), integer()} | {atom(), binary()}
```

Generates a 32-bit Murmur3 hash.

## Parameters

* `input` - The input to hash
* `seed` - The seed to use for the hash

## Examples

    iex> Murmur3.murmur3_x86_32("hello")
    {:ok, 613153351}
    iex> Murmur3.murmur3_x86_32("hello", 123)
    {:ok, 1573043710}

# `murmur3_x86_128`

```elixir
@spec murmur3_x86_128(binary(), integer()) :: {atom(), integer()} | {atom(), binary()}
```

Generates a x86 128-bit Murmur3 hash.

## Parameters

* `input` - The input to hash
* `seed` - The seed to use for the hash

## Examples

    iex> Murmur3.murmur3_x86_128("hello")
    {:ok, 205839232668418009241864179939306390688}
    iex> Murmur3.murmur3_x86_128("hello", 123)
    {:ok, 39646137218600763345533167485429249129}

---

*Consult [api-reference.md](api-reference.md) for complete listing*
