Telestes provides an implementation of Media Types; also formerly known
as MIME Types. This crate emphasizes performance and correctness; as well
as the ability to parse in a const
context. It is no_std
-enabled.
To get started, check out the [MediaType
] and [Essence
] types.
alloc
- enables the use of types in the alloc
crateserde
- enables serialization/deserialization using serde
db
- enables the const
database of IANA Media TypesThe terminology of this crate should follow the terminology broadly used
in the RFCs or other notable documentation; with one exception. Since the
type
terminology of a Media Type collides with the Rust type
keyword,
we have chosen the terms genus
and species
to replace the terms for
type
and subtype
, respectively.
```rust use telestes::MediaType;
let mt = MediaType::new("text/plain; charset=UTF-8").unwrap(); asserteq!(mt, "text/plain; charset=UTF-8"); asserteq!(mt.essence(), "text/plain"); asserteq!(mt.essence().genus(), "text"); asserteq!(mt.essence().species(), "plain"); assert_eq!(mt.parameters().get("charset"), Some("UTF-8")); ```
This crate is named after the character Telestes from the Greek play Seven Against Thebes by Aeschylus. This character is possibly history's first recorded pantomime.
License: Apache-2.0