# Statix

[![Build Status](](
[![Hex Version]( "Hex Version")](

Statix is an Elixir client for StatsD-compatible servers.
It is focused on speed without sacrificing simplicity, completeness, or correctness.

What makes Statix the fastest library around:

  * direct sending to socket <sup>[[1](#direct-sending)]</sup>
  * caching of the UDP packet header
  * connection pooling to distribute the metric sending
  * diligent usage of [IO lists](

<sup><a name="direct-sending"></a>[1]</sup> In contrast with process-based clients, Statix has lower memory consumption and higher throughput – Statix v1.0.0 does about __876640__ counter increments per flush:


  <summary>It is possible to measure that yourself.</summary>

  for _ <- 1..10_000 do
    Task.start(fn ->
      for _ <- 1..10_000 do
        StatixSample.increment("sample", 1)

  Make sure you have StatsD server running to get more realistic results.


See [the documentation]( for detailed usage information.

## Installation

Add Statix as a dependency to your `mix.exs` file:

defp deps() do
  [{:statix, ">= 0.0.0"}]

Then run `mix deps.get` in your shell to fetch the dependencies.

## License

This software is licensed under [the ISC license](LICENSE).