Skip to content

ElJijuna/code-languages

Repository files navigation

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

About

Typed, zero-dependency metadata for programming languages: names, versions, extensions, logos, i18n, detection helpers, and lazy-loadable API for developer tools, docs, IDEs, and code analysis workflows.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors