A MIME type sniffer for Go.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
.travis.yml
LICENSE
README.md
go.mod
go.sum
mimesniffer.go
mimesniffer_test.go

README.md

MIMESniffer

Build Status Coverage Status Go Report Card GoDoc

A MIME type sniffer for Go.

MIMESniffer implements the algorithm described at here and uses the file signatures (aka magic numbers) listed here to determine the MIME type of the given data. So it can be used as an alternative for the http.DetectContentType().

Features

  • Extremely easy to use
    • Only two functions
      • mimesniffer.Register()
      • mimesniffer.Sniff()
  • Quite fast
  • Supports a wide range of MIME types
    • application/epub+zip
    • application/font-sfnt
    • application/font-woff
    • application/msword
    • application/octet-stream
    • application/ogg
    • application/pdf
    • application/postscript
    • application/rtf
    • application/vnd.ms-cab-compressed
    • application/vnd.ms-excel
    • application/vnd.ms-fontobject
    • application/vnd.ms-powerpoint
    • application/vnd.openxmlformats-officedocument.presentationml.presentation
    • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    • application/vnd.openxmlformats-officedocument.wordprocessingml.document
    • application/wasm
    • application/x-7z-compressed
    • application/x-bzip2
    • application/x-compress
    • application/x-deb
    • application/x-executable
    • application/x-google-chrome-extension
    • application/x-gzip
    • application/x-lzip
    • application/x-msdownload
    • application/x-nintendo-nes-rom
    • application/x-rar-compressed
    • application/x-rpm
    • application/x-shockwave-flash
    • application/x-sqlite3
    • application/x-tar
    • application/x-unix-archive
    • application/x-xz
    • application/zip
    • audio/aac
    • audio/aiff
    • audio/amr
    • audio/basic
    • audio/m4a
    • audio/midi
    • audio/mpeg
    • audio/ogg
    • audio/wave
    • audio/x-flac
    • audio/x-wav
    • font/collection
    • font/otf
    • font/ttf
    • font/woff2
    • font/woff
    • image/bmp
    • image/gif
    • image/jp2
    • image/jpeg
    • image/png
    • image/tiff
    • image/vnd.adobe.photoshop
    • image/vnd.microsoft.icon
    • image/webp
    • image/x-canon-cr2
    • text/html; charset=utf-8
    • text/plain; charset=utf-16be
    • text/plain; charset=utf-16le
    • text/plain; charset=utf-8
    • text/xml; charset=utf-8
    • video/avi
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-m4v
    • video/x-matroska
    • video/x-ms-wmv
    • video/x-msvideo

Installation

Open your terminal and execute

$ go get github.com/aofei/mimesniffer

done.

The only requirement is the Go, at least v1.2.

Community

If you want to discuss this project, or ask questions about it, simply post questions or ideas here.

Contributing

If you want to help build this project, simply follow this to send pull requests here.

License

This project is licensed under the Unlicense.

License can be found here.