this repo has no description
1opam-version: "2.0"
2maintainer: "Romain Calascibetta <romain.calascibetta@gmail.com>"
3authors: "Romain Calascibetta <romain.calascibetta@gmail.com>"
4homepage: "https://github.com/dinosaure/emile"
5bug-reports: "https://github.com/dinosaure/emile/issues"
6dev-repo: "git+https://github.com/dinosaure/emile.git"
7doc: "https://dinosaure.github.io/emile/"
8license: "MIT"
9
10build: [
11 ["jbuilder" "subst" "-p" name] {dev}
12 ["jbuilder" "build" "-p" name "-j" jobs]
13 ["jbuilder" "runtest" "-p" name "-j" jobs] {with-test}
14]
15depends: [
16 "ocaml" {>= "4.03.0"}
17 "jbuilder" {>= "1.0+beta9"}
18 "angstrom" {>= "0.9.0" & < "0.14.0"}
19 "ipaddr" {>= "2.7.0"}
20 "uutf" {>= "1.0.0"}
21 "fmt" {>= "0.8.0"}
22 "alcotest" {with-test}
23]
24synopsis: "[Images](https://youtube.com/watch?v=S70NaQqAfaw))"
25description: """
26[](https://travis-ci.org/dinosure/emile)
27
28
29Emile is a library to parse an e-mail address in OCaml. This project is an
30extraction of [MrMime](https://github.com/oklm-wsh/MrMime.git) - but we use
31[Angstrom](https://github.com/inhabitedtype/angstrom.git) instead an internal
32decoder.
33
34This implementation follow some RFCs:
35- RFC 822
36- RFC 2822
37- RFC 5321 (domain part)
38- RFC 5322
39- RFC 6532
40
41We handle UTF-8 (RFC 6532), domain defined on the SMTP protocol (RFC 5321), and
42general e-mail address purpose (RFC 822, RFC 2822, RFC 5322) including
43_folding-whitespace_.
44
45The last means we can parse something like:
46
47```
48A Group(Some people)
49 :Chris Jones <c@(Chris's host.)public.example>,
50 joe@example.org,
51 John <jdoe@one.test> (my dear friend); (the end of the group)"
52```
53
54For a general purpose, it's not needed and is close e-mail purpose.
55
56Then, for domain part (explained on RFC 6532 - SMTP protocol), we handle this
57kind of domain:
58
59```
60first.last@[12.34.56.78]
61first.last@[IPv6:1111:2222:3333::4444:12.34.56.78]
62```
63
64The parser of IPv* is done by [Ipaddr](https://github.com/mirage/ipaddr.git).
65As a old specification, we handle multiple-domains like:
66
67```
68<@a.com,b.com:john@doe.com>
69```
70
71Obviously, we handle (nested) comments:
72
73```
74a(a(b(c)d(e(f))g)h(i)j)@iana.org
75```
76
77All parsers are binded with a comment which explain where you can find the ABNF
78description and some notes about implementation. All was check by hand."""
79url {
80 src:
81 "https://github.com/dinosaure/emile/releases/download/v0.3/emile-0.3.tbz"
82 checksum: [
83 "sha256=8a560f3c030e241c1a09deb3da179f37257c905ad03d2dd67bfd48172470c793"
84 "md5=57c23427a11e5ac5a2e37f9b21477b0b"
85 ]
86}