• Stars
    star
    116
  • Rank 297,190 (Top 6 %)
  • Language
    Shell
  • License
    The Unlicense
  • Created over 7 years ago
  • Updated almost 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Organised collection of common file extensions

Organised collection of common file extensions

License: Unlicense REUSE status

TL;DR

Introduction

This project maintains reusable collections of common file extensions categorised per typology. It can be used by any program to quickly distinguish between file types.

Such an approach works much faster than recognition by mime/type or using libmagic, but is of course less precise.

The raw data is under data, while generated formats and tools can be found on the projects pages.

Organisation

Categories

Each category is a file named after a generic typology stored in data/categories/:

file.csv description
archive archives and disc images
audio playable audio
book electronic books
code code in machine languages
exec executable binaries
font typography fonts
image static images
sheet spreadsheets
slide presentations and slides
text text in human languages
video moving images
web web developers bread and butter

Inside each category file there is a file extension string in the first column. This collection is not complete... and knowing how standards go: it will never be. We welcome your contribution.

Some extensions (for instance html, see #10 and #11) may belong to more than one category: code or web. In these cases, any extra occurrence of the extension will be marked % in the second column, to mark it as duplicate of another categorisation that took priority.

To establish the category of a single file one can simply ignore all duplicate extensions (those containing % in the second column). Duplicates may be useful to establish the category of a directory containing multiple files by means of fuzzy logic.

Extensions

The file data/extensions.csv contains meta-data per file-extension. The columns explained:

column number: 1. 2. 3.
title: file-extension open/closed/uncategorized text/binary/uncategorized
possible values: * o/c/- t/b/-

Quick start

The current data is available for download in JSON format:

To change extensions and categories one can edit them inside the data/ directory and then use make to render new JSON files:

Usage:
  make <target>

General
  help             Display this help.
  list             list all categories and extensions
  dups             list all duplicate extensions present in more categories
  json-categories  build the json dictionary for { category: [ extensions.. ], .. }
  json-extensions  build the json dictionary for { extension: [ category ], .. }
  release          update the local render in pub/ for release

Launching make list will print on your terminal all currently known extensions by category, for example:

archive: 7z a apk ar bz2 cab cpio deb dmg egg gz iso jar lha mar pea rar rpm s7z shar tar tbz2 tgz tlz war whl xpi zip zipx xz pak
audio: aac aiff ape au flac gsm it m3u m4a mid mod mp3 mpa pls ra s3m sid wav wma xm
book: mobi epub azw1 azw3 azw4 azw6 azw cbr cbz
code: 1.ada 2.ada ada adb ads asm bas bash bat c c++ cbl cc class clj cob cpp cs csh cxx d diff e el f f77 f90 fish for fth ftn go groovy h hh hpp hs html htm hxx java js jsx jsp ksh kt lhs lisp lua m m4 nim patch php pl po pp py r rb rs s scala sh swg swift v vb vcxproj xcodeproj xml zsh
exec: exe msi bin command sh bat crx bash csh fish ksh zsh
font: eot otf ttf woff woff2
image: 3dm 3ds max bmp dds gif jpg jpeg png psd xcf tga thm tif tiff yuv ai eps ps svg dwg dxf gpx kml kmz webp
sheet: ods xls xlsx csv ics vcf
slide: ppt odp
text: doc docx ebook log md msg odt org pages pdf rtf rst tex txt wpd wps
video: 3g2 3gp aaf asf avchd avi drc flv m2v m4p m4v mkv mng mov mp2 mp4 mpe mpeg mpg mpv mxf nsv ogg ogv ogm qt rm rmvb roq srt svi vob webm wmv yuv
web: html htm css js jsx less scss wasm php

Code

You are meant to write your own code to parse file-extension-list.

This repository contains some example code in ./render.

To contribute, please file a pull request on https://github.com/dyne/file-extension-list/pulls

Usage

File-extension-list is used by the software application harvest for fast categorization of large amounts of directories containing multiple file types.

You are welcome to let us know if you are using it too.

License

File-extension-list is maintained by Jaromil, Puria and Hoijui.

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

For more information, please refer to https://unlicense.org

More Repositories

1

Tomb

the Crypto Undertaker
Shell
1,190
star
2

frei0r

A large collection of free and portable video plugins
C
409
star
3

Zenroom

Embedded no-code VM executing human-like language to manipulate data and process cryptographic operations.
C
186
star
4

dnscrypt-proxy

DNSCrypt-Proxy repository, frankly maintained for what it does (no new features planned)
C
167
star
5

dowse

The Awareness Hub for the Internet of Things
C
158
star
6

gitzone

git-based zone management tool for static and dynamic domains
Perl
114
star
7

ZShaolin

Interactive and scriptable console terminal on Android (build framework)
Java
111
star
8

JaroMail

Terminal UI email client to download, filter, search and archive messages off-line
Shell
101
star
9

domain-list

A list of domains (including CDN hosts) belonging to ICT company silos, i.e. FB, GOOG, AMZN etc.
Shell
76
star
10

sup

a "small is beautiful" tool for UNIX privilege escalation
C
53
star
11

dynebolic-upstream

dyne:bolic is a nomadic operating system, 100% Free, based on GNU/Linux
ASL
33
star
12

harvest

Tool to sort large collections of files according to common typologies
Shell
32
star
13

webnomad

A slick and solid website builder
JavaScript
30
star
14

binnit

minimal no-fuss pastebin service clone in golang
Go
30
star
15

decode-proximity-hw

Embedded version of decode's proximity app
C
26
star
16

Freecoin

New project, moved to https://github.com/d-cent/freecoin
C++
24
star
17

tinfoil

A minimalist tool to manage multiple profiles for web browsers
Shell
21
star
18

docker-devuan-builds

Slim docker base images based on Devuan
Dockerfile
21
star
19

dohd

Very fast DNS-over-HTTPS to DNS proxy with emphasis on privacy (no logging)
C
21
star
20

docker2sh

Convert a Dockerfile to a shell script
Python
14
star
21

AutOrg

Autonomy is Organization
Emacs Lisp
13
star
22

FXC

FXC Simple Secret Sharing - clojure library
Clojure
13
star
23

social-wallet-api

Social Wallet REST API web interface
Clojure
12
star
24

sud

minimalist sudo alternative: multi-user privilege escalation tool in three letters
HTML
10
star
25

reflow-crypto

Reflow: Zero Knowledge Multi Party Signatures with Application to Distributed Authentication
TeX
10
star
26

scorsh

Signed-Commit Remote Shell - authenticated trigger for remote execution via Git
Go
9
star
27

autosshfs

Per user SSHFS automount using user's SSH configuration
Shell
9
star
28

fabchain

FABchain network based on geth + clique
Lua
8
star
29

Tomb3

WIP for Tomb v3 the crypto undertaker
Shell
8
star
30

pangolin

The Secret Pangolin Code, Fastest Proximity Tracing in the West (FPTW)
C
8
star
31

W3C-DID

Dyne.org's W3C-DID implementation
Shell
8
star
32

freecoin-lib

Freecoin digital currency toolkit - core library
Clojure
8
star
33

reflow-os

Base scripts to run Reflow OS
Makefile
7
star
34

RedRoom

Zenroom crypto module for Redis
C
7
star
35

zuper

Zsh Ultimate Programmer's Extensions Refurbished
Shell
7
star
36

bonfire_ui_reflow

UI for reflow bonfire app
Elixir
7
star
37

TorTV

Build of Tor maintained to run on TV devices and set-top boxes
Shell
6
star
38

lotionroom

Tendermint / Cosmos proof of concept contract made with Zenroom
JavaScript
6
star
39

Sawroom

Zenroom Transaction Processor for Hyperledger Sawtooth
Python
6
star
40

Agiladmin

Administration of timesheets and project budgets for small and medium organisations
JavaScript
6
star
41

reflow-docs

ReflowOS Architecture and Manual for Distributed Network Setup and Maintenance
HTML
5
star
42

decode-web

DECODE Project static website, rendered from the original site in Drupal
HTML
5
star
43

social-explorer

A Social Explorer UI built on top of SWAPI and Sawroom
Clojure
5
star
44

TBT

Time Based Text
C++
5
star
45

luigi

Design tool for hackers
JavaScript
5
star
46

starters

📐 Projects template starters of Dyne.org
Svelte
5
star
47

fistpy

✊ 🐍 Python client library for Fist full text search
Python
5
star
48

Writedown

Minimalistic academic publisher using markdown and pandoc
Shell
4
star
49

lua-paillier

Lua module for the Paillier cryptographic scheme
C
4
star
50

markdown-inline-tag

Render the content of <markdown></markdown> tags inside an HTML file using Pandoc
Shell
4
star
51

slangroom

Enhance zencode smart contracts with your slang
TypeScript
4
star
52

handbook-dev

Dyne.org's Handbook for developers
3
star
53

just-auth

A simple two factor authentication library
Clojure
3
star
54

social-wallet

A social wallet with a simple configurable UI backed by the social wallet api
Clojure
3
star
55

reflow-dpp-demo

Produce a Digital Product Passport from Reflow OS object
HTML
3
star
56

zenswarm

Protototype of Zenroom based consensus
Shell
3
star
57

luabinaries

Binary builds of the Lua language interpreter
Makefile
3
star
58

clj-flows

A building block of the REFLOW infrastructure: a VF implementation in clojure, with graphql as API layer.
Clojure
3
star
59

restroom-mw

🛠 Easy REST API builder executing Zencode
TypeScript
3
star
60

lua-zenroom

Port of Zenroom crypto primitives running on Lua5.1/Luajit including Nginx, Tarantool and Openresty
C
3
star
61

fxc-soldipubblici

Console interattiva (live-coding) per analisi di dati pubblicati su soldipubblici.gov.it
3
star
62

clj-storage

Minimal storage lib to facilitate different DB implementations
Clojure
2
star
63

mkdocs-dyne-theme

A mkdocs theme for dyne.org software webpages
HTML
2
star
64

zenflows

Resource-Event-Agent Graph Database governed by Valueflows vocabulary logics
Elixir
2
star
65

zenflows-crypto

Zencode crypto functions for Zenflows
Shell
2
star
66

restroom-github-action

Shell
2
star
67

tech-radar

Overview of technologies mapped according to our level of adoption
2
star
68

petition-tp-python

Transaction processor for Decode Petition over Hyperledger Sawtooth
Python
2
star
69

social-wallet-admin-console

Interactive admin console (REPL) for the social wallet
JavaScript
2
star
70

clj-auxiliary

Common auxiliary functions extending clojure basic utilities
Clojure
2
star
71

indycaptcha

An independent captcha that does not feed any AI and takes arbitrary lists of words
HTML
2
star
72

bonfire_reflow

Bonfire module for REFLOW authenticated graphs
Elixir
2
star
73

shuriken

A tool to throw confs around like a ninja
Shell
2
star
74

devuan-rpi4-home-assistant

Base installer for home-assistant + extensions for Devuan on RaspberryPi 4
Shell
2
star
75

devuan-sdk

Simple Development Kit for the Devuan GNU/Linux distribution
Shell
2
star
76

gh-cd

🚀 cd || clone || repo create
Go
2
star
77

socialwallet.app

HTML
2
star
78

lurker-ng

Fork of lurker to keep the mailinglist archive alive with new fixes
C++
2
star
79

zenswarm-oracle

Zenswarm Oracle implementation
JavaScript
2
star
80

docker-dyne-software

Docker setups to quickly deploy some software applications made by Dyne.org
Dockerfile
2
star
81

json-schema-builder-svelte

A Svelte component library for building JSON Schemas
Svelte
1
star
82

rustroom

Rust micro-service for fast async Zencode execution
Rust
1
star
83

zenroom-go-wrapper

Go
1
star
84

zenflows-gui

Reflow GUI
TypeScript
1
star
85

blog-code-samples

Code samples linked from https://medium.com/think-do-tank
HTML
1
star
86

bonfire_api_json

http api json post endpoints for bonfire
Elixir
1
star
87

dynebot

Telegram bot intended for helping automating small tedious tasks of dyne.org internal interaction
Python
1
star
88

great-dane

Zenroom DNS utilities
Go
1
star
89

softwarepassport

Software Passport compliancy check on the blockchain
Python
1
star
90

pangolin-armor

Proxy with load-balancing and SSL management for node pangolin staging server
JavaScript
1
star
91

zenroom-web-example

🚀 Running Zenroom js on HTML
HTML
1
star
92

FXC-webapi

FXC web API for Simple Secret Sharing
Clojure
1
star
93

bonfire_quantify

1
star
94

clj-paypal-ipn

PayPal IPN handler in Clojure for use with Ring and Compojure.
Clojure
1
star
95

tender-vf

prototype tendermint value flows
1
star
96

valueflows-dashboard

JavaScript
1
star
97

.github

1
star
98

zenpub-websites

zenpub design components
HTML
1
star
99

Zenroom-Android-app

Simple Android app, built to show how to use Zenroom libs
Java
1
star
100

W3C-DID-data

1
star