What is MIME type "application/x-elc"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

application/x-elc is a MIME type for files containing compiled Emacs Lisp code. These files are created when Emacs converts human-readable Lisp source into bytecode for faster execution. The files use the file extension ELC.

Compiled bytecode is not meant for manual editing. It is loaded directly by Emacs to speed up processing of Lisp functions and configurations.

The prefix x- signals that the MIME type is non-standard and specialized. For more details on how Emacs uses compiled Lisp, visit Emacs’ official site or check related entries on Wikipedia.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: application/x-elc    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="application/x-elc">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'application/x-elc');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

What is the primary purpose of an .elc file?

An .elc file contains byte-compiled Emacs Lisp code designed to be executed by the GNU Emacs text editor. Compiling the human-readable source code into this binary format allows Emacs to load packages and configurations significantly faster than processing plain text.

How does application/x-elc differ from text/x-emacs-lisp?

The text/x-emacs-lisp type (associated with .el files) represents human-readable source code, while application/x-elc represents the compiled bytecode of that source. Emacs automatically prefers loading the application/x-elc version if it is newer than the source file to optimize performance.

How do I configure Apache to serve application/x-elc files correctly?

If you are hosting an Emacs package repository, add the MIME type definition to your .htaccess or main configuration file. Use the directive AddType application/x-elc .elc to ensure browsers and package managers identify the file correctly.

Can I manually edit a file with the application/x-elc MIME type?

No, these files are binary bytecode and are not meant to be edited by humans. Opening an .elc file in a text editor will display unreadable characters; you should edit the corresponding source file (usually .el) and recompile it within Emacs.

Is it safe to delete .elc files?

Yes, provided you still have the original source .el file. If you delete the compiled file, Emacs will simply load the slower source file next time; you can regenerate the application/x-elc file using the Emacs command byte-compile-file.

Why does this MIME type start with x-?

The x- prefix indicates that application/x-elc is a non-standard type that has not been officially registered with the IANA. It is a vendor-specific format used almost exclusively by the Emacs environment.

Are there security risks when downloading application/x-elc files?

Yes, because these files contain executable code. A malicious .elc file could run harmful commands on your system when loaded by Emacs. Always ensure you are downloading packages from trusted repositories like GNU ELPA or MELPA.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.