Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aofei/mimesniffer
A MIME type sniffer for Go.
https://github.com/aofei/mimesniffer
content-type file-format file-signature go magic-number mime mimesniffer sniffer type
Last synced: 2 months ago
JSON representation
A MIME type sniffer for Go.
- Host: GitHub
- URL: https://github.com/aofei/mimesniffer
- Owner: aofei
- License: mit
- Created: 2018-12-20T03:40:20.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-08-04T09:11:36.000Z (over 2 years ago)
- Last Synced: 2024-08-03T19:10:00.438Z (5 months ago)
- Topics: content-type, file-format, file-signature, go, magic-number, mime, mimesniffer, sniffer, type
- Language: Go
- Homepage: https://pkg.go.dev/github.com/aofei/mimesniffer
- Size: 35.2 KB
- Stars: 33
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go-extra - mimesniffer - 12-20T03:40:20Z|2022-08-04T09:11:36Z| (Utilities / Fail injection)
README
# MIMESniffer
[![GitHub Actions](https://github.com/aofei/mimesniffer/workflows/Test/badge.svg)](https://github.com/aofei/mimesniffer)
[![codecov](https://codecov.io/gh/aofei/mimesniffer/branch/master/graph/badge.svg)](https://codecov.io/gh/aofei/mimesniffer)
[![Go Report Card](https://goreportcard.com/badge/github.com/aofei/mimesniffer)](https://goreportcard.com/report/github.com/aofei/mimesniffer)
[![PkgGoDev](https://pkg.go.dev/badge/github.com/aofei/mimesniffer)](https://pkg.go.dev/github.com/aofei/mimesniffer)A MIME type sniffer for Go.
MIMESniffer implements the algorithm described at
[here](https://mimesniff.spec.whatwg.org) and uses the file signatures (aka
[magic numbers](https://en.wikipedia.org/wiki/Magic_number_\(programming\)#Magic_numbers_in_files))
listed [here](https://www.garykessler.net/library/file_sigs.html) to determine
the MIME type of the given data. So it can be used as an alternative for the
[`http.DetectContentType`](https://pkg.go.dev/net/http#DetectContentType).## Features
* Extremely easy to use
* Two functions
* [`mimesniffer.Register`](https://pkg.go.dev/github.com/aofei/mimesniffer#Register)
* [`mimesniffer.Sniff`](https://pkg.go.dev/github.com/aofei/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`
* Zero third-party dependencies## Installation
Open your terminal and execute
```bash
$ go get github.com/aofei/mimesniffer
```done.
> The only requirement is the [Go](https://go.dev), at least v1.13.
## Community
If you want to discuss MIMESniffer, or ask questions about it, simply post
questions or ideas [here](https://github.com/aofei/mimesniffer/issues).## Contributing
If you want to help build MIMESniffer, simply follow
[this](https://github.com/aofei/mimesniffer/wiki/Contributing) to send pull requests
[here](https://github.com/aofei/mimesniffer/pulls).## License
This project is licensed under the MIT License.
License can be found [here](LICENSE).