The Wayback Machine - https://web.archive.org/web/20221129193253/https://github.com/ua-nick/fleep-go
Skip to content

ua-nick/fleep-go

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

fleep

Go Report Card License PkgGoDev Version

File format determination package for Go

Getting Started

fleep is a package that determines file format by file signature (also known as "magic number").

Installation

You can download the source using go get command:

go get github.com/floyernick/fleep-go

Usage

Main function GetInfo determines file format. It takes file as a byte sequence and returns info about file.

Info has the following fields:

  • Type -> list of suitable file types
  • Extension -> list of suitable file extensions
  • Mime -> list of suitable file MIME types

Also Info has the following methods:

  • TypeMatches -> checks if file type matches with given type as an argument
  • ExtensionMatches -> checks if file extension matches with given extension as an argument
  • MimeMatches -> checks if file MIME type matches with given MIME type as an argument

There is an example (error handling omitted):

package main

import (
	"fleep"
	"fmt"
	"io/ioutil"
)

func main() {
	file, _ := ioutil.ReadFile("gopher.png")        // Reads PNG file
	info, _ := fleep.GetInfo(file)                  // Gets file format
	fmt.Println(info.Type)                          // Prints [raster-image]
	fmt.Println(info.Extension)                     // Prints [png]
	fmt.Println(info.Mime)                          // Prints [image/png]
	fmt.Println(info.TypeMatches(fleep.RasterImage) // Prints true
	fmt.Println(info.ExtensionMatches("jpg"))       // Prints false
	fmt.Println(info.MimeMatches("image/png"))      // Prints true
}

Supported Formats

There is a list of supported formats (in alphabetical order):

Raster Image:

  • BMP
  • GIF
  • ICO
  • JP2
  • JPEG
  • PNG
  • PSD
  • TIFF
  • WEBP

Raw Image:

  • ARW
  • CR2
  • CRW
  • DNG
  • ERF
  • NEF
  • NRW
  • ORF
  • PEF
  • RAF
  • RAW
  • RW2
  • SRW
  • X3F

Vector Image:

  • AI
  • EPS

3D Image:

  • C4D
  • FBX
  • MA
  • MS3D
  • MTL
  • OBJ
  • PLY
  • WRL
  • X3D
  • XSI

Audio:

  • AAC
  • AC3
  • AIFF
  • AMR
  • AU
  • FLAC
  • M4A
  • MIDI
  • MKA
  • MP3
  • OGA
  • RA
  • VOC
  • WAV
  • WMA

Video:

  • 3G2
  • 3GP
  • ASF
  • AVI
  • FLV
  • M4V
  • MKV
  • MOV
  • MP4
  • MPG
  • OGV
  • SWF
  • VOB
  • WEBM
  • WMV

Document:

  • DOC
  • DOCX
  • EPUB
  • KEY
  • NUMBERS
  • ODP
  • ODS
  • ODT
  • PAGES
  • PDF
  • PPS
  • PPT
  • PPTX
  • RTF
  • XLS
  • XLSX
  • XML

Archive:

  • 7Z
  • DMG
  • GZ
  • ISO
  • RAR
  • TAR.Z
  • ZIP

Executable:

  • COM
  • EXE
  • JAR

Font:

  • OTF
  • TTF
  • WOFF
  • WOFF2

System:

  • CAB
  • CAT
  • DLL
  • DRV
  • REG
  • SDB
  • SYS

Database:

  • SQLITE

Contribute

We would be happy to receive your propositions of improvement! Read Contributing Guide for more details.

License

This project is licensed under the MIT License.

Authors

Mykyta Paliienko - GitHub profile

About

File format determination package for Go

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages