README.md

# Elixir

<div
  align="center"
  style="display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 20px 0"
>
  <!-- Built with -->
  <a href="https://github.com/kreuzberg-dev/alef">
    <img
      src="https://img.shields.io/badge/built%20with-alef%20%D7%90-007ec6"
      alt="Built with alef"
    />
  </a>
  <!-- Language Bindings -->
  <a href="https://crates.io/crates/tree-sitter-language-pack">
    <img
      src="https://img.shields.io/crates/v/tree-sitter-language-pack?label=Rust&color=007ec6"
      alt="Rust"
    />
  </a>
  <a href="https://pypi.org/project/tree-sitter-language-pack/">
    <img
      src="https://img.shields.io/pypi/v/tree-sitter-language-pack?label=Python&color=007ec6"
      alt="Python"
    />
  </a>
  <a href="https://www.npmjs.com/package/@kreuzberg/tree-sitter-language-pack">
    <img
      src="https://img.shields.io/npm/v/@kreuzberg/tree-sitter-language-pack?label=Node.js&color=007ec6"
      alt="Node.js"
    />
  </a>
  <a href="https://www.npmjs.com/package/@kreuzberg/tree-sitter-language-pack-wasm">
    <img
      src="https://img.shields.io/npm/v/@kreuzberg/tree-sitter-language-pack-wasm?label=WASM&color=007ec6"
      alt="WASM"
    />
  </a>
  <a href="https://central.sonatype.com/artifact/dev.kreuzberg/tree-sitter-language-pack">
    <img
      src="https://img.shields.io/maven-central/v/dev.kreuzberg/tree-sitter-language-pack?label=Java&color=007ec6"
      alt="Java"
    />
  </a>
  <a href="https://pkg.go.dev/github.com/kreuzberg-dev/tree-sitter-language-pack/packages/go">
    <img
      src="https://img.shields.io/github/v/tag/kreuzberg-dev/tree-sitter-language-pack?label=Go&color=007ec6"
      alt="Go"
    />
  </a>
  <a href="https://www.nuget.org/packages/TreeSitterLanguagePack">
    <img
      src="https://img.shields.io/nuget/v/TreeSitterLanguagePack?label=C%23&color=007ec6"
      alt="C#"
    />
  </a>
  <a href="https://packagist.org/packages/kreuzberg/tree-sitter-language-pack">
    <img
      src="https://img.shields.io/packagist/v/kreuzberg/tree-sitter-language-pack?label=PHP&color=007ec6"
      alt="PHP"
    />
  </a>
  <a href="https://rubygems.org/gems/tree_sitter_language_pack">
    <img
      src="https://img.shields.io/gem/v/tree_sitter_language_pack?label=Ruby&color=007ec6"
      alt="Ruby"
    />
  </a>
  <a href="https://hex.pm/packages/tree_sitter_language_pack">
    <img
      src="https://img.shields.io/hexpm/v/tree_sitter_language_pack?label=Elixir&color=007ec6"
      alt="Elixir"
    />
  </a>
  <a
    href="https://github.com/kreuzberg-dev/tree-sitter-language-pack/tree/main/crates/tree-sitter-language-pack-ffi"
  >
    <img src="https://img.shields.io/badge/C-FFI-007ec6" alt="C FFI" />
  </a>

  <!-- Project Info -->
  <a href="https://github.com/kreuzberg-dev/tree-sitter-language-pack/blob/main/LICENSE">
    <img src="https://img.shields.io/badge/License-MIT-007ec6" alt="License" />
  </a>
  <a href="https://docs.tree-sitter-language-pack.kreuzberg.dev">
    <img src="https://img.shields.io/badge/docs-kreuzberg.dev-007ec6" alt="Docs" />
  </a>
</div>

Pre-compiled tree-sitter grammars for 306 programming languages with Elixir bindings via Rustler NIF.

## Installation


Add to `mix.exs`:

```elixir
defp deps do
  [
    {:tree_sitter_language_pack, "~> 1.8.1"}
  ]
end
```


## Quick Start


See the [language guide](https://docs.tree-sitter-language-pack.kreuzberg.dev) for `elixir`-specific usage.


## Features

- **306 languages** — pre-compiled tree-sitter grammars covering every major programming language and many minor ones.
- **On-demand download + cache** — parsers fetched at first use; subsequent runs hit the local cache.
- **Code intelligence** — extract functions, classes, imports, exports, symbols, docstrings, and diagnostics with one API.
- **Syntax-aware chunking** — semantic chunks for RAG/LLM pipelines.
- **Polyglot bindings** — Rust core with native bindings for Python, TypeScript, Go, Java, C#, Ruby, PHP, Elixir, and WebAssembly via [alef](https://github.com/kreuzberg-dev/alef).

## Documentation

- **[Documentation](https://docs.tree-sitter-language-pack.kreuzberg.dev)** -- Full docs and API reference
- **[GitHub Repository](https://github.com/kreuzberg-dev/tree-sitter-language-pack)** -- Source, issues, and discussions

## Part of Kreuzberg.dev

- [Kreuzberg](https://github.com/kreuzberg-dev/kreuzberg) — document intelligence: text, tables, metadata from 91+ formats with optional OCR.
- [Kreuzberg Cloud](https://github.com/kreuzberg-dev/kreuzberg-cloud) — managed extraction API with SDKs, dashboards, and observability.
- [kreuzcrawl](https://github.com/kreuzberg-dev/kreuzcrawl) — web crawling and scraping with HTML→Markdown and headless-Chrome fallback.
- [html-to-markdown](https://github.com/kreuzberg-dev/html-to-markdown) — fast, lossless HTML→Markdown engine.
- [liter-llm](https://github.com/kreuzberg-dev/liter-llm) — universal LLM API client with native bindings for 14 languages and 143 providers.
- [alef](https://github.com/kreuzberg-dev/alef) — the polyglot binding generator that produces this README and all per-language bindings.
- [Discord](https://discord.gg/xt9WY3GnKR) — community, roadmap, announcements.

## Contributing

Contributions are welcome! See [CONTRIBUTING.md](https://github.com/kreuzberg-dev/tree-sitter-language-pack/blob/main/CONTRIBUTING.md) for guidelines.

Join our [Discord community](https://discord.gg/xt9WY3GnKR) for questions and discussion.

## License

MIT -- see [LICENSE](https://github.com/kreuzberg-dev/tree-sitter-language-pack/blob/main/LICENSE) for details.