Services to identify Internet media types (or MIME types, Content-types)

Introduced classes

class MediaTypes

nitcorn :: MediaTypes

Map of known MIME types

Redefined classes

redef class Sys

nitcorn :: media_types $ Sys

The main class of the program.

All class definitions

class MediaTypes

nitcorn $ MediaTypes

Map of known MIME types
redef class Sys

nitcorn :: media_types $ Sys

The main class of the program.
package_diagram nitcorn::media_types media_types core core nitcorn::media_types->core nitcorn::file_server file_server nitcorn::file_server->nitcorn::media_types nitcorn::nitcorn nitcorn nitcorn::nitcorn->nitcorn::file_server nitcorn::nitcorn... ... nitcorn::nitcorn...->nitcorn::nitcorn

Ancestors

module abstract_collection

core :: abstract_collection

Abstract collection classes and services.
module abstract_text

core :: abstract_text

Abstract class for manipulation of sequences of characters
module array

core :: array

This module introduces the standard array structure.
module bitset

core :: bitset

Services to handle BitSet
module bytes

core :: bytes

Services for byte streams and arrays
module circular_array

core :: circular_array

Efficient data structure to access both end of the sequence.
module codec_base

core :: codec_base

Base for codecs to use with streams
module codecs

core :: codecs

Group module for all codec-related manipulations
module collection

core :: collection

This module define several collection classes.
module environ

core :: environ

Access to the environment variables of the process
module error

core :: error

Standard error-management infrastructure.
module exec

core :: exec

Invocation and management of operating system sub-processes.
module file

core :: file

File manipulations (create, read, write, etc.)
module fixed_ints

core :: fixed_ints

Basic integers of fixed-precision
module fixed_ints_text

core :: fixed_ints_text

Text services to complement fixed_ints
module flat

core :: flat

All the array-based text representations
module gc

core :: gc

Access to the Nit internal garbage collection mechanism
module hash_collection

core :: hash_collection

Introduce HashMap and HashSet.
module iso8859_1

core :: iso8859_1

Codec for ISO8859-1 I/O
module kernel

core :: kernel

Most basic classes and methods.
module list

core :: list

This module handle double linked lists
module math

core :: math

Mathematical operations
module native

core :: native

Native structures for text and bytes
module numeric

core :: numeric

Advanced services for Numeric types
module protocol

core :: protocol

module queue

core :: queue

Queuing data structures and wrappers
module range

core :: range

Module for range of discrete objects.
module re

core :: re

Regular expression support for all services based on Pattern
module ropes

core :: ropes

Tree-based representation of a String.
module sorter

core :: sorter

This module contains classes used to compare things and sorts arrays.
module stream

core :: stream

Input and output streams of characters
module text

core :: text

All the classes and methods related to the manipulation of text entities
module time

core :: time

Management of time and dates
module union_find

core :: union_find

union–find algorithm using an efficient disjoint-set data structure
module utf8

core :: utf8

Codec for UTF-8 I/O

Parents

module core

core :: core

Standard classes and methods used by default by Nit programs and libraries.

Children

module file_server

nitcorn :: file_server

Provides the FileServer action, which is a standard and minimal file server

Descendants

module a_star-m

a_star-m

module example_angular

popcorn :: example_angular

This is an example of how to use angular.js with popcorn
module hooks

github :: hooks

Github hook event listening with nitcorn.
module htcpcp_server

nitcorn :: htcpcp_server

A server that implements HTCPCP. At the moment there are no additions.
module loader

github :: loader

module nitcorn

nitcorn :: nitcorn

The nitcorn Web server framework creates server-side Web apps in Nit
module nitcorn_hello_world

nitcorn :: nitcorn_hello_world

Hello World Web server example
module pop_auth

popcorn :: pop_auth

Authentification handlers.
module pop_handlers

popcorn :: pop_handlers

Route handlers.
module pop_json

popcorn :: pop_json

Introduce useful services for JSON REST API handlers.
module pop_routes

popcorn :: pop_routes

Internal routes representation.
module pop_sessions

popcorn :: pop_sessions

Session handlers
module pop_tasks

popcorn :: pop_tasks

Popcorn threaded tasks
module pop_templates

popcorn :: pop_templates

Template rendering for popcorn
module pop_tests

popcorn :: pop_tests

Popcorn testing services
module popcorn

popcorn :: popcorn

Application server abstraction on top of nitcorn.
module pthreads

nitcorn :: pthreads

Activate the use of pthreads with nitcorn
module restful

nitcorn :: restful

Support module for the nitrestful tool and the restful annotation
module restful_annot

nitcorn :: restful_annot

Example for the restful annotation documented at lib/nitcorn/restful.nit
module simple_file_server

nitcorn :: simple_file_server

Basic file server on port 80 by default, may require root to execute
# Services to identify Internet media types (or MIME types, Content-types)
module media_types

# Map of known MIME types
class MediaTypes

	# MIME types by extensions.
	protected var types = new HashMap[String, String]

	# Get the type/subtype associated to a file extension `ext`
	fun [](ext: String): nullable String
	do
		if types.keys.has(ext) then return types[ext]
		return null
	end

	init
	do
		types["html"]       = "text/html"
		types["htm"]        = "text/html"
		types["shtml"]      = "text/html"
		types["css"]        = "text/css"
		types["csv"]        = "text/csv"
		types["xml"]        = "text/xml"
		types["rss"]        = "text/xml"
		types["gif"]        = "image/gif"
		types["jpg"]        = "image/jpeg"
		types["jpeg"]       = "image/jpeg"
		types["js"]         = "application/x-javascript"
		types["txt"]        = "text/plain"
		types["htc"]        = "text/x-component"
		types["mml"]        = "text/mathml"
		types["png"]        = "image/png"
		types["ico"]        = "image/x-icon"
		types["jng"]        = "image/x-jng"
		types["wbmp"]       = "image/vnd.wap.wbmp"
		types["gz"]         = "application/gzip"
		types["jar"]        = "application/java-archive"
		types["war"]        = "application/java-archive"
		types["ear"]        = "application/java-archive"
		types["json"]       = "application/json"
		types["hqx"]        = "application/mac-binhex40"
		types["pdf"]        = "application/pdf"
		types["cco"]        = "application/x-cocoa"
		types["jardiff"]    = "application/x-java-archive-diff"
		types["jnlp"]       = "application/x-java-jnlp-file"
		types["run"]        = "application/x-makeself"
		types["pl"]         = "application/x-perl"
		types["pm"]         = "application/x-perl"
		types["pdb"]        = "application/x-pilot"
		types["prc"]        = "application/x-pilot"
		types["rar"]        = "application/x-rar-compressed"
		types["rpm"]        = "application/x-redhat-package-manager"
		types["sea"]        = "application/x-sea"
		types["swf"]        = "application/x-shockwave-flash"
		types["sit"]        = "application/x-stuffit"
		types["tcl"]        = "application/x-tcl"
		types["tk"]         = "application/x-tcl"
		types["der"]        = "application/x-x509-ca-cert"
		types["pem"]        = "application/x-x509-ca-cert"
		types["crt"]        = "application/x-x509-ca-cert"
		types["xpi"]        = "application/x-xpinstall"
		types["zip"]        = "application/zip"
		types["deb"]        = "application/octet-stream"
		types["bin"]        = "application/octet-stream"
		types["exe"]        = "application/octet-stream"
		types["dll"]        = "application/octet-stream"
		types["dmg"]        = "application/octet-stream"
		types["eot"]        = "application/octet-stream"
		types["iso"]        = "application/octet-stream"
		types["img"]        = "application/octet-stream"
		types["msi"]        = "application/octet-stream"
		types["msp"]        = "application/octet-stream"
		types["msm"]        = "application/octet-stream"
		types["mp3"]        = "audio/mpeg"
		types["ra"]         = "audio/x-realaudio"
		types["mpeg"]       = "video/mpeg"
		types["mpg"]        = "video/mpeg"
		types["mov"]        = "video/quicktime"
		types["flv"]        = "video/x-flv"
		types["avi"]        = "video/x-msvideo"
		types["wmv"]        = "video/x-ms-wmv"
		types["asx"]        = "video/x-ms-asf"
		types["asf"]        = "video/x-ms-asf"
		types["mng"]        = "video/x-mng"
		types["apk"]        = "application/vnd.android.package-archive"
		types["svg"]        = "image/svg+xml"
		types["ttf"]        = "application/x-font-ttf"
		types["otf"]        = "application/x-font-opentype"
		types["eof"]        = "application/vnd.ms-fontobject"
		types["woff"]       = "application/font-woff"
		types["woff2"]      = "application/font-woff2"
	end
end

# MIME types list.
fun media_types: MediaTypes do return once new MediaTypes
lib/nitcorn/media_types.nit:18,1--114,57