magic-mime

AuthorsAnil Madhavapeddy and Maxence Guesdon
LicenseISC
Homepagehttps://github.com/mirage/ocaml-magic-mime
Issue Trackerhttps://github.com/mirage/ocaml-magic-mime/issues
MaintainerAnil Madhavapeddy <anil@recoil.org>
Dependencies
jbuilder>= 1.0+beta9
Availableocaml-version >= "4.03.0"
PublishedJun 20, 2017
Source [http] https://github.com/mirage/ocaml-magic-mime/releases/download/v1.1.0/magic-mime-1.1.0.tbz
341ab5133c2e17ca645f23a0149025d1
StatisticsInstalled 1591 times last month.
Edithttps://github.com/ocaml/opam-repository/tree/master/packages/magic-mime/magic-mime.1.1.0/opam

Map filenames to common MIME types

This library contains a database of MIME types that maps filename extensions into MIME types suitable for use in many Internet protocols such as HTTP or e-mail. It is generated from the mime.types file found in Unix systems, but has no dependency on a filesystem since it includes the contents of the database as an ML datastructure.

For example, here's how to lookup MIME types in the [utop] REPL:

#require "magic-mime";;
Magic_mime.lookup "/foo/bar.txt";;
- : bytes = "text/plain"
Magic_mime.lookup "bar.css";;
- : bytes = "text/css"

Internals

The following files need to be edited to add MIME types:

  • mime.types: this is obtained by synching from the Apache Foundation's mime.types in the Apache Subversion repository.
  • x-mime.types: these are the extension types, so non-standard x- prefixes are used here.
  • file.types: full filenames of common occurrences that are useful to map onto a MIME type. OCaml-specific things like opam files show up here.