What is MIME type "text/x-scala"?

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

text/x-scala is a MIME type that tells software the file holds Scala source code. It ensures development tools, such as editors and build systems, treat the file as programmable text rather than simple documents.
Files labeled with this MIME type are processed with language-specific rules. This aids in syntax highlighting, error checking, and correct file formatting.

Commonly, source files for Scala projects use this type. They serve code, build definitions, or educational scripts. Examples include files like SC, SCALA, SBT, and KOJO.

Learn more about MIME types on Wikipedia and about Scala on Wikipedia.

Associated file extensions

Usage Examples

HTTP Header

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


    Content-Type: text/x-scala    
  

HTML

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


    <a href="file.dat" type="text/x-scala">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', 'text/x-scala');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

What file extensions are associated with text/x-scala?

This MIME type is primarily used for Scala source code files (.scala) and Scala scripts (.sc). It is also standard for Simple Build Tool configuration files (.sbt) and educational Kojo scripts (.kojo).

Why does the MIME type text/x-scala start with "x-"?

The x- prefix indicates that the type is a non-standard or experimental extension not officially registered with the IANA. Despite this, text/x-scala is the widely accepted convention used by IDEs and web servers to identify Scala content.

How do I configure Apache to serve Scala files correctly?

To ensure your Apache server sends the correct header, add the following line to your .htaccess file or global configuration: AddType text/x-scala .scala .sc .sbt. This ensures browsers and tools recognize the content as code.

Will a web browser execute a file served as text/x-scala?

No, browsers do not natively execute Scala code. If you navigate to a file served with this MIME type, the browser will typically display the raw source code as plain text. To run in a browser, Scala is usually compiled to JavaScript (Scala.js).

How do I add text/x-scala support to Nginx?

You can update your mime.types file or add a directive inside your server block. Use the syntax types { text/x-scala scala sc sbt; } to map the extensions to the MIME type.

Is text/x-scala compatible with text/plain?

Yes, because text/x-scala falls under the text/* category, it is human-readable. If a specific application does not recognize text/x-scala, it will often default to treating the file as generic text/plain.

Why do .sbt files use the text/x-scala MIME type?

Files with the .sbt extension are build definitions for the Scala Build Tool. Since these definitions are written using a dialect of the Scala language, they use the same MIME type to ensure editors apply the correct syntax highlighting.

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.