npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

code-languages

v1.19.0

Published

Structured metadata for programming languages.

Downloads

3,655

Readme

code-languages

npm version Pull Request Docs License: MIT TypeScript Dependencies

Structured metadata for programming languages, packaged as a typed, tree-shakeable TypeScript library.

code-languages is useful when you need a small source of truth for language names, slugs, file extensions, release metadata, websites, paradigms, and logos in developer tools, docs sites, learning platforms, or editor-like interfaces.

Features

  • TypeScript-first data model
  • Zero runtime dependencies
  • ESM and CommonJS builds
  • Subpath imports for per-language usage
  • Tree-shakeable exports
  • Works in Node.js and modern bundlers

Installation

npm install code-languages

Usage

Import only the language metadata you need:

import { typescript } from "code-languages/typescript";
import { localizeLanguage } from "code-languages/i18n";

const localized = localizeLanguage(typescript, "en");

console.log(localized.name);
console.log(localized.description);
console.log(typescript.extensions);
console.log(typescript.paradigms);

Import multiple languages:

import { abap } from "code-languages/abap";
import { actionscript } from "code-languages/actionscript";
import { ada } from "code-languages/ada";
import { apex } from "code-languages/apex";
import { asciidoc } from "code-languages/asciidoc";
import { asp } from "code-languages/asp";
import { astro } from "code-languages/astro";
import { assembly } from "code-languages/assembly";
import { awk } from "code-languages/awk";
import { bash } from "code-languages/bash";
import { batch } from "code-languages/batch";
import { bazel } from "code-languages/bazel";
import { bicep } from "code-languages/bicep";
import { blade } from "code-languages/blade";
import { c } from "code-languages/c";
import { clojure } from "code-languages/clojure";
import { cmake } from "code-languages/cmake";
import { coffeescript } from "code-languages/coffeescript";
import { cobol } from "code-languages/cobol";
import { cpp } from "code-languages/cpp";
import { csharp } from "code-languages/csharp";
import { crystal } from "code-languages/crystal";
import { css } from "code-languages/css";
import { cue } from "code-languages/cue";
import { cuda } from "code-languages/cuda";
import { d } from "code-languages/d";
import { dart } from "code-languages/dart";
import { dockerfile } from "code-languages/dockerfile";
import { elixir } from "code-languages/elixir";
import { elm } from "code-languages/elm";
import { erlang } from "code-languages/erlang";
import { fennel } from "code-languages/fennel";
import { fortran } from "code-languages/fortran";
import { fsharp } from "code-languages/fsharp";
import { gdscript } from "code-languages/gdscript";
import { git } from "code-languages/git";
import { gleam } from "code-languages/gleam";
import { gradle } from "code-languages/gradle";
import { glsl } from "code-languages/glsl";
import { graphql } from "code-languages/graphql";
import { groovy } from "code-languages/groovy";
import { handlebars } from "code-languages/handlebars";
import { haskell } from "code-languages/haskell";
import { haxe } from "code-languages/haxe";
import { hcl } from "code-languages/hcl";
import { hlsl } from "code-languages/hlsl";
import { html } from "code-languages/html";
import { ini } from "code-languages/ini";
import { javascript } from "code-languages/javascript";
import { java } from "code-languages/java";
import { jinja } from "code-languages/jinja";
import { julia } from "code-languages/julia";
import { kotlin } from "code-languages/kotlin";
import { less } from "code-languages/less";
import { liquid } from "code-languages/liquid";
import { lisp } from "code-languages/lisp";
import { lua } from "code-languages/lua";
import { makefile } from "code-languages/makefile";
import { matlab } from "code-languages/matlab";
import { markdown } from "code-languages/markdown";
import { mdx } from "code-languages/mdx";
import { mermaid } from "code-languages/mermaid";
import { meson } from "code-languages/meson";
import { metal } from "code-languages/metal";
import { nginx } from "code-languages/nginx";
import { nim } from "code-languages/nim";
import { nix } from "code-languages/nix";
import { ocaml } from "code-languages/ocaml";
import { objectiveC } from "code-languages/objective-c";
import { pascal } from "code-languages/pascal";
import { perl } from "code-languages/perl";
import { php } from "code-languages/php";
import { plantuml } from "code-languages/plantuml";
import { powershell } from "code-languages/powershell";
import { prolog } from "code-languages/prolog";
import { protobuf } from "code-languages/protobuf";
import { pug } from "code-languages/pug";
import { python } from "code-languages/python";
import { qml } from "code-languages/qml";
import { r } from "code-languages/r";
import { racket } from "code-languages/racket";
import { razor } from "code-languages/razor";
import { ruby } from "code-languages/ruby";
import { scala } from "code-languages/scala";
import { scss } from "code-languages/scss";
import { solidity } from "code-languages/solidity";
import { json } from "code-languages/json";
import { jupyterNotebook } from "code-languages/jupyter-notebook";
import { sql } from "code-languages/sql";
import { starlark } from "code-languages/starlark";
import { svg } from "code-languages/svg";
import { svn } from "code-languages/svn";
import { svelte } from "code-languages/svelte";
import { swift } from "code-languages/swift";
import { tcl } from "code-languages/tcl";
import { toml } from "code-languages/toml";
import { typst } from "code-languages/typst";
import { verilog } from "code-languages/verilog";
import { vhdl } from "code-languages/vhdl";
import { visualBasic } from "code-languages/visual-basic";
import { vue } from "code-languages/vue";
import { webassembly } from "code-languages/webassembly";
import { wgsl } from "code-languages/wgsl";
import { xaml } from "code-languages/xaml";
import { xml } from "code-languages/xml";
import { yaml } from "code-languages/yaml";
import { zig } from "code-languages/zig";
import { zsh } from "code-languages/zsh";

console.log(abap.version);
console.log(actionscript.extensions);
console.log(ada.version);
console.log(apex.extensions);
console.log(asciidoc.extensions);
console.log(asp.extensions);
console.log(astro.version);
console.log(assembly.extensions);
console.log(awk.version);
console.log(bash.version);
console.log(batch.extensions);
console.log(bazel.version);
console.log(bicep.version);
console.log(blade.extensions);
console.log(c.extensions);
console.log(clojure.version);
console.log(cmake.extensions);
console.log(coffeescript.version);
console.log(cpp.i18n.en.name);
console.log(csharp.website);
console.log(crystal.version);
console.log(css.paradigms);
console.log(cue.version);
console.log(cuda.version);
console.log(d.version);
console.log(dockerfile.i18n.en.name);
console.log(elm.version);
console.log(erlang.version);
console.log(fennel.extensions);
console.log(fortran.extensions);
console.log(fsharp.version);
console.log(gdscript.extensions);
console.log(git.extensions);
console.log(gleam.version);
console.log(gradle.extensions);
console.log(glsl.extensions);
console.log(graphql.version);
console.log(groovy.version);
console.log(handlebars.extensions);
console.log(hcl.extensions);
console.log(haxe.version);
console.log(hlsl.extensions);
console.log(html.extensions);
console.log(ini.extensions);
console.log(javascript.website);
console.log(java.version);
console.log(jinja.version);
console.log(jupyterNotebook.extensions);
console.log(julia.version);
console.log(kotlin.version);
console.log(less.extensions);
console.log(liquid.extensions);
console.log(lisp.version);
console.log(lua.version);
console.log(makefile.extensions);
console.log(matlab.version);
console.log(markdown.website);
console.log(mdx.extensions);
console.log(mermaid.version);
console.log(meson.extensions);
console.log(metal.version);
console.log(nginx.version);
console.log(nim.version);
console.log(nix.version);
console.log(objectiveC.version);
console.log(pascal.version);
console.log(perl.version);
console.log(php.version);
console.log(plantuml.version);
console.log(powershell.extensions);
console.log(prolog.paradigms);
console.log(protobuf.version);
console.log(pug.version);
console.log(python.publishedDate);
console.log(qml.version);
console.log(r.version);
console.log(racket.extensions);
console.log(razor.extensions);
console.log(ruby.website);
console.log(scala.version);
console.log(scss.extensions);
console.log(solidity.version);
console.log(json.i18n.en.description);
console.log(sql.i18n.en.name);
console.log(starlark.extensions);
console.log(svg.extensions);
console.log(svn.extensions);
console.log(svelte.version);
console.log(swift.version);
console.log(tcl.extensions);
console.log(toml.version);
console.log(typst.version);
console.log(verilog.extensions);
console.log(vhdl.version);
console.log(visualBasic.i18n.en.name);
console.log(vue.website);
console.log(webassembly.extensions);
console.log(wgsl.extensions);
console.log(xaml.extensions);
console.log(xml.extensions);
console.log(yaml.version);
console.log(zig.version);
console.log(zsh.extensions);

Import from the package root when bundle size is not a concern:

import {
  abap,
  actionscript,
  ada,
  apex,
  asciidoc,
  asp,
  astro,
  assembly,
  awk,
  bash,
  bazel,
  bicep,
  blade,
  c,
  clojure,
  cmake,
  coffeescript,
  cpp,
  csharp,
  crystal,
  css,
  cue,
  cuda,
  d,
  detectLanguage,
  detectLanguages,
  dockerfile,
  elixir,
  elm,
  erlang,
  fennel,
  fortran,
  fsharp,
  gdscript,
  go,
  gleam,
  glsl,
  graphql,
  groovy,
  handlebars,
  haskell,
  haxe,
  hcl,
  hlsl,
  html,
  ini,
  java,
  jinja,
  json,
  jupyterNotebook,
  julia,
  kotlin,
  less,
  liquid,
  lisp,
  lua,
  makefile,
  matlab,
  localizeLanguage,
  markdown,
  mdx,
  mermaid,
  meson,
  metal,
  nginx,
  nim,
  nix,
  ocaml,
  objectiveC,
  pascal,
  perl,
  php,
  plantuml,
  powershell,
  prolog,
  protobuf,
  pug,
  qml,
  r,
  racket,
  razor,
  ruby,
  rust,
  scala,
  scss,
  solidity,
  sql,
  starlark,
  svg,
  svn,
  svelte,
  swift,
  tcl,
  toml,
  typescript,
  typst,
  verilog,
  vhdl,
  visualBasic,
  vue,
  webassembly,
  wgsl,
  xaml,
  xml,
  yaml,
  zig,
  zsh,
} from "code-languages";

console.log(localizeLanguage(abap).description);
console.log(localizeLanguage(actionscript, "es").description);
console.log(localizeLanguage(ada, "es").description);
console.log(localizeLanguage(apex, "es").description);
console.log(localizeLanguage(asciidoc, "es").description);
console.log(localizeLanguage(asp, "es").description);
console.log(localizeLanguage(astro, "es").description);
console.log(localizeLanguage(assembly).description);
console.log(localizeLanguage(awk, "es").description);
console.log(detectLanguage("src/index.ts")?.slug);
console.log(detectLanguages("include/config.h").map((language) => language.slug));
console.log(localizeLanguage(bash, "es").description);
console.log(localizeLanguage(bazel, "es").description);
console.log(localizeLanguage(bicep, "es").description);
console.log(localizeLanguage(blade, "es").description);
console.log(c.version);
console.log(localizeLanguage(clojure, "es").description);
console.log(localizeLanguage(cmake).description);
console.log(localizeLanguage(coffeescript).name);
console.log(cpp.website);
console.log(localizeLanguage(csharp).description);
console.log(localizeLanguage(crystal, "es").description);
console.log(localizeLanguage(css).name);
console.log(localizeLanguage(cue, "es").description);
console.log(localizeLanguage(cuda, "es").description);
console.log(localizeLanguage(d, "es").description);
console.log(dockerfile.website);
console.log(localizeLanguage(elixir, "es").description);
console.log(localizeLanguage(elm, "es").description);
console.log(localizeLanguage(erlang, "es").description);
console.log(localizeLanguage(fennel, "es").description);
console.log(localizeLanguage(fortran).description);
console.log(localizeLanguage(fsharp, "es").description);
console.log(localizeLanguage(gdscript, "es").description);
console.log(localizeLanguage(gleam, "es").description);
console.log(localizeLanguage(glsl, "es").description);
console.log(localizeLanguage(graphql, "es").description);
console.log(localizeLanguage(groovy).description);
console.log(localizeLanguage(handlebars, "es").description);
console.log(localizeLanguage(haskell, "es").description);
console.log(localizeLanguage(haxe, "es").description);
console.log(localizeLanguage(hcl, "es").description);
console.log(localizeLanguage(hlsl, "es").description);
console.log(localizeLanguage(ini, "es").description);
console.log(localizeLanguage(java).name);
console.log(localizeLanguage(jinja, "es").description);
console.log(html.website);
console.log(localizeLanguage(julia, "es").description);
console.log(localizeLanguage(kotlin, "es-PE").description);
console.log(localizeLanguage(less, "es").name);
console.log(localizeLanguage(liquid, "es").description);
console.log(localizeLanguage(lisp).description);
console.log(localizeLanguage(lua, "es").description);
console.log(localizeLanguage(makefile).description);
console.log(localizeLanguage(matlab, "es").description);
console.log(markdown.extensions);
console.log(localizeLanguage(mdx, "es").description);
console.log(localizeLanguage(mermaid, "es").description);
console.log(localizeLanguage(meson, "es").description);
console.log(localizeLanguage(metal).description);
console.log(localizeLanguage(nginx, "es").description);
console.log(localizeLanguage(nim, "es").description);
console.log(localizeLanguage(nix, "es").description);
console.log(localizeLanguage(ocaml, "es").description);
console.log(objectiveC.extensions);
console.log(localizeLanguage(pascal, "es").description);
console.log(localizeLanguage(perl).description);
console.log(localizeLanguage(php, "es").description);
console.log(localizeLanguage(plantuml, "es").description);
console.log(localizeLanguage(powershell).name);
console.log(localizeLanguage(prolog, "es").description);
console.log(localizeLanguage(protobuf, "es").description);
console.log(localizeLanguage(pug, "es").description);
console.log(localizeLanguage(qml, "es").description);
console.log(go.logo);
console.log(localizeLanguage(r, "es").description);
console.log(localizeLanguage(racket, "es").description);
console.log(localizeLanguage(razor, "es").description);
console.log(localizeLanguage(ruby, "es").description);
console.log(localizeLanguage(scala, "es").description);
console.log(localizeLanguage(scss).name);
console.log(localizeLanguage(solidity, "es").description);
console.log(json.website);
console.log(sql.extensions);
console.log(localizeLanguage(starlark, "es").description);
console.log(localizeLanguage(svg, "es").description);
console.log(localizeLanguage(svn, "es").description);
console.log(localizeLanguage(svelte).name);
console.log(swift.i18n.en.description);
console.log(localizeLanguage(tcl, "es").description);
console.log(localizeLanguage(toml, "es").description);
console.log(localizeLanguage(typst, "es").description);
console.log(localizeLanguage(verilog, "es").description);
console.log(localizeLanguage(vhdl, "es").description);
console.log(localizeLanguage(visualBasic, "es").description);
console.log(localizeLanguage(vue, "es").description);
console.log(localizeLanguage(webassembly).name);
console.log(localizeLanguage(wgsl, "es").description);
console.log(localizeLanguage(xaml, "es").description);
console.log(localizeLanguage(xml, "es").name);
console.log(yaml.paradigms);
console.log(localizeLanguage(zig, "es").description);
console.log(zsh.version);

API

Every language object satisfies the Language interface:

export type Locale = "en" | "es" | `en-${string}` | `es-${string}` | string;

export interface LanguageContent {
  name: string;
  description: string;
  longDescription: string;
}

export interface Language {
  slug: string;
  publishedDate: string;
  extensions: string[];
  author: string;
  website: string;
  paradigms: string[];
  tooling?: {
    runtimes?: string[];
    packageManagers?: string[];
    ecosystems?: string[];
  };
  version: string;
  logo: string;
  i18n: {
    en: LanguageContent;
    es?: LanguageContent;
  };
}

Use the fluent API when you want one entry point for localization, dynamic loading, and filename detection:

import { api } from "code-languages/api";

const astro = api.language("astro").locale("es-PE").get();
const vue = await api.language("vue").locale("en-US").load();
const detected = api.detect("src/App.vue").locale("es").get();
const ambiguous = await api.detectAll("include/config.h").locale("en").load();

console.log(astro?.resolvedLocale); // "es"
console.log(vue?.slug); // "vue"
console.log(detected?.name); // "Vue"
console.log(ambiguous.map((language) => language.slug)); // ["c", "cpp"]

get() reads from the bundled in-memory catalog. load() uses explicit dynamic imports so bundlers can lazy-load individual language modules when the consumer build supports code splitting.

Use localizeLanguage to read localized display content with English fallback:

import { json } from "code-languages/json";
import { localizeLanguage } from "code-languages/i18n";

const language = localizeLanguage(json, "es-PE");

console.log(language.name);
console.log(language.longDescription);
console.log(language.resolvedLocale); // "es"

localizeLanguage resolves locales in this order:

  1. Exact locale, for example es.
  2. Base language from a regional locale, for example es-PE -> es.
  3. English fallback, for example fr-FR -> en.

Use detectLanguage or detectLanguages to infer languages from filenames:

import { detectLanguage, detectLanguages } from "code-languages/detect";

console.log(detectLanguage("src/index.ts")?.slug); // "typescript"
console.log(detectLanguage("Dockerfile")?.slug); // "dockerfile"
console.log(detectLanguages("include/config.h").map((language) => language.slug)); // ["c", "cpp"]

Supported Languages

| Logo | Language | Slug | Extensions | Version | Import | |---|---|---|---|---|---| | | ABAP | abap | .abap | ABAP Platform 2025 FPS01 | code-languages/abap | | | ActionScript | actionscript | .as | 3.0 | code-languages/actionscript | | | Ada | ada | .adb, .ads, .ada | Ada 2022 | code-languages/ada | | | Apex | apex | .cls, .trigger | API 66.0 | code-languages/apex | | | AsciiDoc | asciidoc | .adoc, .asciidoc, .asc | pre-spec | code-languages/asciidoc | | | ASP/ASPX | asp | .asp, .aspx, .ascx, .ashx, .asmx, .master | 4.8.1 | code-languages/asp | | | Astro | astro | .astro | 6.3.3 | code-languages/astro | | | Assembly | assembly | .asm, .s, .S, .inc | Architecture-specific | code-languages/assembly | | | awk | awk | .awk | GNU Awk 5.4.0 | code-languages/awk | | | Bash | bash | .sh, .bash, .bashrc, .bash_profile, .bash_login, .profile | 5.3 | code-languages/bash | | | Batch | batch | .bat, .cmd | Windows Command Processor | code-languages/batch | | | Bazel | bazel | BUILD.bazel, WORKSPACE, WORKSPACE.bazel, MODULE.bazel | 9.0.2 | code-languages/bazel | | | Bicep | bicep | .bicep, .bicepparam | 0.43.8 | code-languages/bicep | | | Blade | blade | .blade.php | Laravel 12.x | code-languages/blade | | | C | c | .c, .h | C23 | code-languages/c | | | CMake | cmake | CMakeLists.txt, .cmake | 4.3.2 | code-languages/cmake | | | Clojure | clojure | .clj, .cljs, .cljc, .edn, .bb | 1.12.5 | code-languages/clojure | | | CoffeeScript | coffeescript | .coffee, .litcoffee, .cson | 2.7.0 | code-languages/coffeescript | | | COBOL | cobol | .cob, .cbl, .cobol, .cpy | ISO/IEC 1989:2023 | code-languages/cobol | | | C++ | cpp | .cpp, .cc, .cxx, .h, .hpp, .hh, .hxx | C++23 | code-languages/cpp | | | C# | csharp | .cs, .csx | 14 | code-languages/csharp | | | Crystal | crystal | .cr | 1.20.2 | code-languages/crystal | | | CSS | css | .css | Living Standard | code-languages/css | | | CUE | cue | .cue | 0.16.1 | code-languages/cue | | | CUDA | cuda | .cu, .cuh | 13.2.1 | code-languages/cuda | | | D | d | .d, .di | 2.112.0 | code-languages/d | | | Dart | dart | .dart | 3.11.6 | code-languages/dart | | | Dockerfile | dockerfile | Dockerfile, .dockerfile | 1.10 | code-languages/dockerfile | | | Elixir | elixir | .ex, .exs, .eex, .leex, .heex | 1.19.5 | code-languages/elixir | | | Elm | elm | .elm | 0.19.1 | code-languages/elm | | | Erlang | erlang | .erl, .hrl, .app.src, .escript, .xrl, .yrl, rebar.config | OTP 29.0 | code-languages/erlang | | | Fennel | fennel | .fnl | 1.6.1 | code-languages/fennel | | | Fortran | fortran | .f, .for, .ftn, .f90, .f95, .f03, .f08, .f18, .f23 | Fortran 2023 | code-languages/fortran | | | F# | fsharp | .fs, .fsi, .fsx, .fsscript | 10 | code-languages/fsharp | | | GDScript | gdscript | .gd | 4.6 | code-languages/gdscript | | | Git | git | .git, .gitignore, .gitattributes, .gitmodules, .gitkeep | 2.54.0 | code-languages/git | | | Gleam | gleam | .gleam | 1.16.0 | code-languages/gleam | | | Go | go | .go | 1.26.3 | code-languages/go | | | Gradle | gradle | .gradle, .gradle.kts | 9.5.1 | code-languages/gradle | | | GLSL | glsl | .glsl, .vert, .frag, .geom, .tesc, .tese, .comp, .vs, .fs | 4.60 | code-languages/glsl | | | GraphQL | graphql | .graphql, .gql, .graphqls | September 2025 | code-languages/graphql | | | Groovy | groovy | .groovy, .gvy, .gy, .gsh | 5.0.5 | code-languages/groovy | | | Handlebars | handlebars | .hbs, .handlebars | 4.7.9 | code-languages/handlebars | | | Haskell | haskell | .hs, .lhs, .hsc, .hs-boot, .hsig, .cabal | GHC 9.14.1 | code-languages/haskell | | | Haxe | haxe | .hx, .hxml | 4.3.7 | code-languages/haxe | | | HCL | hcl | .hcl, .tf, .tfvars, .pkr.hcl, .nomad | 2.24.0 | code-languages/hcl | | | HLSL | hlsl | .hlsl, .fx, .fxh, .hlsli | Shader Model 6.9 | code-languages/hlsl | | | HTML | html | .html, .htm | Living Standard | code-languages/html | | | INI | ini | .ini | Informal format | code-languages/ini | | | Java | java | .java | 26 | code-languages/java | | | JavaScript | javascript | .js, .mjs, .cjs, .jsx | ECMAScript 2025 | code-languages/javascript | | | Jinja | jinja | .jinja, .jinja2, .j2 | 3.1.6 | code-languages/jinja | | | JSON | json | .json | RFC 8259 | code-languages/json | | | Jupyter Notebook | jupyter-notebook | .ipynb | nbformat 4.5 | code-languages/jupyter-notebook | | | Julia | julia | .jl | 1.12.6 | code-languages/julia | | | Kotlin | kotlin | .kt, .kts | 2.3.20 | code-languages/kotlin | | | Less | less | .less | 4.4.1 | code-languages/less | | | Liquid | liquid | .liquid | 10.21.1 | code-languages/liquid | | | Lisp | lisp | .lisp, .lsp, .cl, .asd | ANSI INCITS 226-1994 | code-languages/lisp | | | Lua | lua | .lua, .rockspec | 5.5.0 | code-languages/lua | | | Makefile | makefile | Makefile, makefile, GNUmakefile, .mk, .mak | 4.4.1 | code-languages/makefile | | | MATLAB | matlab | .m, .mlx | R2026a | code-languages/matlab | | | Markdown | markdown | .md, .markdown, .mdown, .mkd | CommonMark 0.31.2 | code-languages/markdown | | | MDX | mdx | .mdx | 3.1.1 | code-languages/mdx | | | Mermaid | mermaid | .mmd, .mermaid | 11.11.0 | code-languages/mermaid | | | Meson | meson | meson.build, meson_options.txt, meson.options, .wrap | 1.11.1 | code-languages/meson | | | Metal | metal | .metal | Metal 4 | code-languages/metal | | | nginx | nginx | nginx.conf, .nginx, .conf | 1.30.1 | code-languages/nginx | | | Nim | nim | .nim, .nims, .nimble | 2.2.10 | code-languages/nim | | | Nix | nix | .nix | 2.28 | code-languages/nix | | | OCaml | ocaml | .ml, .mli, .mll, .mly, .mlt, .eliom, .eliomi | 5.6.0 | code-languages/ocaml | | | Objective-C | objective-c | .m, .mm | 2.0 | code-languages/objective-c | | | Pascal | pascal | .pas, .pp, .inc, .lpr, .dpr, .dfm | 3.2.2 | code-languages/pascal | | | Perl | perl | .pl, .pm, .pod, .t, .psgi | 5.42.2 | code-languages/perl | | | PHP | php | .php, .phtml, .php3, .php4, .php5, .phps | 8.5.6 | code-languages/php | | | PlantUML | plantuml | .puml, .plantuml, .iuml | 1.2026.3 | code-languages/plantuml | | | PowerShell | powershell | .ps1, .psm1, .psd1, .ps1xml | 7.6.1 | code-languages/powershell | | | Prolog | prolog | .pl, .pro, .prolog, .P | SWI-Prolog 10.0 | code-languages/prolog | | | Protocol Buffers | protobuf | .proto | 34.1 | code-languages/protobuf | | | Pug | pug | .pug, .jade | 3.0.4 | code-languages/pug | | | Python | python | .py, .pyw | 3.14.4 | code-languages/python | | | QML | qml | .qml, .qmltypes, .qmlproject | Qt 6.11.1 | code-languages/qml | | | R | r | .r, .R, .rmd, .Rmd, .qmd, .Rprofile | 4.6.0 | code-languages/r | | | Racket | racket | .rkt, .rktd, .rktl, .scrbl | 9.1 | code-languages/racket | | | Razor | razor | .cshtml, .razor | 10.0.8 | code-languages/razor | | | Rego | rego | .rego | OPA 1.15.2 | code-languages/rego | | | Ruby | ruby | .rb, .rbw, .rake, .gemspec, Gemfile, Rakefile, config.ru | 4.0.4 | code-languages/ruby | | | Rust | rust | .rs | 1.95.0 | code-languages/rust | | | Scala | scala | .scala, .sc | 3.8.3 | code-languages/scala | | | Sass | scss | .scss, .sass | 1.99.0 | code-languages/scss | | | Solidity | solidity | .sol | 0.8.35 | code-languages/solidity | | | SQL | sql | .sql | SQL:2023 | code-languages/sql | | | Starlark | starlark | .bzl, .star, .sky | Bazel Starlark | code-languages/starlark | | | SVG | svg | .svg, .svgz | SVG 2 | code-languages/svg | | | SVN | svn | .svn, svnserve.conf | 1.14.5 | code-languages/svn | | | Svelte | svelte | .svelte | 5.55.7 | code-languages/svelte | | | Swift | swift | .swift | 6.2.2 | code-languages/swift | | | Tcl/Tk | tcl | .tcl, .tm, .test | 9.0.3 | code-languages/tcl | | | TeX | tex | .tex, .sty, .cls, .dtx, .ins, .ltx | TeX Live 2026 | code-languages/tex | | | TOML | toml | .toml | 1.1.0 | code-languages/toml | | | Twig | twig | .twig | 3.24.0 | code-languages/twig | | | TypeScript | typescript | .ts, .tsx, .mts, .cts | 6.0 | code-languages/typescript | | | Typst | typst | .typ | 0.14.1 | code-languages/typst | | | Verilog/SystemVerilog | verilog | .v, .vh, .sv, .svh | IEEE 1800-2023 | code-languages/verilog | | | VHDL | vhdl | .vhd, .vhdl | IEEE 1076-2019 | code-languages/vhdl | | | Visual Basic | visual-basic | .vb | 17.13 | code-languages/visual-basic | | | Vue | vue | .vue | 3.5.34 | code-languages/vue | | | WebAssembly | webassembly | .wasm, .wat | 3.0 | code-languages/webassembly | | | WGSL | wgsl | .wgsl | Candidate Recommendation Draft 2026-05-07 | code-languages/wgsl | | | XAML | xaml | .xaml, .baml | Platform-specific | code-languages/xaml | | | XML | xml | .xml, .xsd, .xsl, .xslt | XML 1.0 Fifth Edition | code-languages/xml | | | XQuery | xquery | .xq, .xql, .xqm, .xquery, .xqy | XQuery 3.1 | code-languages/xquery | | | XSLT | xslt | .xsl, .xslt | XSLT 3.0 | code-languages/xslt | | | YAML | yaml | .yaml, .yml | 1.2.2 | code-languages/yaml | | | Zig | zig | .zig, .zon | 0.16.0 | code-languages/zig | | | zsh | zsh | .zsh, .zshrc, .zprofile, .zlogin, .zlogout, .zshenv | 5.9 | code-languages/zsh |

Development

npm ci
npm run check
npm run build

Common scripts:

| Script | Purpose | |---|---| | npm run lint | Run Biome checks | | npm run typecheck | Run TypeScript without emitting files | | npm test | Run Vitest | | npm run bench | Run manual performance benchmarks | | npm run build | Build ESM, CommonJS, and declaration files | | npm run check | Run lint, typecheck, and tests | | npm run website:prepare | Build the static website data, unit test summary, and benchmark summary | | npm run website:serve | Preview the static website locally |

Website

The static website lives in docs and is generated from the package build. It includes a live filename detector, localized language lookup, the full language catalog, unit test summary, and benchmark summary.

npm run website:prepare
npm run website:serve

Contributing

See CONTRIBUTING.md for setup instructions, field rules, and the process for adding a new language.

License

MIT