Skip to content
MIME Library for V.
Verilog Coq
Branch: master
Clone or download
Latest commit 6bcb9bc Aug 3, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial release Jul 19, 2019
LICENSE Initial release Jul 19, 2019 Delete js related stuff. Aug 3, 2019
list.v Initial release Jul 19, 2019
mime.v Initial release Jul 19, 2019
mime_test.v Update test Aug 3, 2019

V-MIME 0.1

MIME library for the V Programming Language. Inspired from the mime-types JS library.

What does it do? It dentifies the MIME/data types of a file like application/json.


import mime

// As a workaround, alias the `MimeType` type
type MimeType mime.MimeType

fn main() {
    mime_db := mime.load()
    filepath := './app.json'
    filetype := mime_db.lookup(filepath)

    println(filetype) // application/json


mime.lookup(path string)

Lookup the content-type associated with a file.

mime_db.lookup('json')             // 'application/json'
mime_db.lookup('.md')              // 'text/markdown'
mime_db.lookup('file.html')        // 'text/html'
mime_db.lookup('folder/file.js')   // 'application/javascript'
mime_db.lookup('folder/.htaccess') // ''

mime_db.lookup('cats') // ''

mime.content_type(type string)

Create a full content-type header given a content-type or extension. When given an extension, mime_db.lookup is used to get the matching content-type, otherwise the given content-type is used. Then if the content-type does not already have a charset parameter, mime_db.charset is used to get the default charset and add to the returned content-type.

mime_db.content_type('markdown')  // 'text/x-markdown; charset=utf-8'
mime_db.content_type('file.json') // 'application/json; charset=utf-8'
mime_db.content_type('text/html') // 'text/html; charset=utf-8'
mime_db.content_type('text/html; charset=iso-8859-1') // 'text/html; charset=iso-8859-1'

// from a full path
mime_db.content_type(os.ext('/path/to/file.json')) // 'application/json; charset=utf-8'

mime.extension(type string)

Get the default extension for a content-type.

mime_db.extension('application/octet-stream') // 'bin'

mime.charset(type string)

Lookup the implied default charset of a content-type.

mime_db.charset('text/markdown') // 'UTF-8'


  1. Fork it (
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request




You can’t perform that action at this time.