Cana is a simple email address validator based on RFC3696, RFC5322, RFC5321, Wikipedia and various other reading.
Cana is a small, single purpose library, only for email address validation.
Add cana to your mix.exs.
def deps do
[
{:cana, "~> 0.1.0"}
]
end
iex> Cana.validate_email_address("[email protected]")
{:ok, %{domain: "progressiveaspect.com", local: "justin"}}
iex> Cana.validate_email_address("badad\"[email protected]")
{:error, "expected string \"@\" at column: 5"}
Taken with a teaspoon of salt; test of 10000 items.
Operating System: Linux
CPU Information: Intel(R) Core(TM) i7-4771 CPU @ 3.50GHz
Number of Available Cores: 2
Available memory: 7.75 GB
Elixir 1.10.4
Erlang 23.0.3
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 14 s
Benchmarking invalid...
Benchmarking valid...
Name ips average deviation median 99th %
invalid 19.62 50.97 ms ±13.79% 48.41 ms 91.28 ms
valid 10.76 92.94 ms ±11.02% 88.66 ms 123.64 ms
Comparison:
invalid 19.62
valid 10.76 - 1.82x slower +41.97 ms
Copyright (c) 2020 Justin McPherson
This project is licensed under the terms of the MIT license, please see the LICENCE.md file for more details.