Skip to content
This repository was archived by the owner on Dec 23, 2023. It is now read-only.

sendyhalim/Swime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

89 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ—‚ Swime

Swift check MIME type based on magic bytes. Swime detects MIME type of a Data, ported from sindresorhus/file-type

Build Status

Maintainers wanted

This project is not under active development, please go to maintainers ticket if you're interested.

Maintainers Wanted

Installation

Swift Package Manager

import PackageDescription let package = Package( name: "MyApp", dependencies: [ .Package(url: "https://github.com/sendyhalim/Swime", majorVersion: 3) ] )

Usage

Inspect mime type

import Swime let path = "/path/to/some-file.jpg" let url = URL(fileURLWithPath: path, isDirectory: false) let data = try! Data(contentsOf: url) let mimeType = Swime.mimeType(data: data) mimeType?.type == .jpg // true mimeType! // MimeType(mime: "image/jpeg", ext: "jpg", type: .jpg) switch mimeType?.type { case .jpg?: .... case .png?: .... case .wmv?: .... case ... }

Pass bytes to it

import Swime let bytes: [UInt8] = [255, 216, 255] let mimeType = Swime.mimeType(bytes: bytes) mimeType! // MimeType(mime: "image/jpeg", ext: "jpg", type: .jpg)

MimeTypeExtension

Here are the list of available MimeTypeExtension.

public enum MimeTypeExtension { case amr case ar case avi case bmp case bz2 case cab case cr2 case crx case deb case dmg case eot case epub case exe case flac case flif case flv case gif case gz case ico case jpg case jxr case lz case m4a case m4v case mid case mkv case mov case mp3 case mp4 case mpg case msi case mxf case nes case ogg case opus case otf case pdf case png case ps case psd case rar case rpm case rtf case sevenZ // 7z, Swift does not let us define enum that starts with a digit case sqlite case swf case tar case tif case ttf case wav case webm case webp case wmv case woff case woff2 case xpi case xz case z case zip case heic }

Testing

make test 

About

πŸ—‚ Swift MIME type checking based on magic bytes

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors