A cross-platform, OpenGL terminal emulator.
Go to file
Christian Duerr e35e5ad14f
Fix regex memory usage
This fixes an issue where regexes with a large number of possible states
would consume excessive memory, since the entire DFA was compiled ahead
of time.

To solve this, the DFA is now built at runtime using `regex-automata`'s
hybrid DFA.

There are however still some checks performed ahead of time, causing
errors with obscenely large regexes (`[0-9A-Za-z]{999999999}`), which
shouldn't cause any issues.

A regex which is large, but not large enough to fail the NFA
construction (like `[0-9A-Za-z]{999999}`) will cause a long search of
the entire grid, but will complete and show the match.

Closes #7097.
2023-09-17 13:04:05 +04:00
.builds Test man-pages compilation on the CI 2023-09-07 15:23:08 +04:00
.github Update wix on the release CI 2023-06-26 01:01:50 +04:00
alacritty Fix regex memory usage 2023-09-17 13:04:05 +04:00
alacritty_config Remove winit dependency from alacritty_config 2023-08-17 17:33:29 +00:00
alacritty_config_derive Fix license syntax 2023-07-19 23:07:55 +00:00
alacritty_terminal Fix regex memory usage 2023-09-17 13:04:05 +04:00
docs Remove obsolete ansicode.txt file 2023-09-07 01:05:34 +00:00
extra Add missing position config docs 2023-09-16 13:32:21 +04:00
scripts Switch to flamegraph-rs script 2020-01-27 02:30:23 +03:00
.editorconfig Switch to TOML configuration format 2023-06-12 00:23:41 +00:00
.gitignore Add editorconfig 2020-11-06 05:12:29 +03:00
CHANGELOG.md Fix regex memory usage 2023-09-17 13:04:05 +04:00
CONTRIBUTING.md Switch to TOML configuration format 2023-06-12 00:23:41 +00:00
Cargo.lock Update winit to 0.29.1-beta 2023-09-04 03:01:12 +04:00
Cargo.toml Add resolver to workspace manifest 2023-06-11 18:58:30 +00:00
INSTALL.md Create man5 directory along with man1 2023-07-10 02:08:41 +00:00
LICENSE-APACHE Remove copyright notice from files 2020-06-06 21:49:14 +03:00
LICENSE-MIT Add licenses to `alacritty_config` 2022-09-05 09:39:09 +03:00
Makefile Switch to TOML configuration format 2023-06-12 00:23:41 +00:00
README.md Add a note in README about older versions 2023-07-02 01:23:27 +04:00
rustfmt.toml Update rustfmt configuration 2021-10-11 00:54:18 +00:00


Alacritty Logo

Alacritty - A fast, cross-platform, OpenGL terminal emulator

Alacritty - A fast, cross-platform, OpenGL terminal emulator


Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. By integrating with other applications, rather than reimplementing their functionality, it manages to provide a flexible set of features with high performance. The supported platforms currently consist of BSD, Linux, macOS and Windows.

The software is considered to be at a beta level of readiness; there are a few missing features and bugs to be fixed, but it is already used by many as a daily driver.

Precompiled binaries are available from the GitHub releases page.

Join #alacritty on libera.chat if you have questions or looking for a quick help.


You can find an overview over the features available in Alacritty here.

Further information


Alacritty can be installed by using various package managers on Linux, BSD, macOS and Windows.

Prebuilt binaries for macOS and Windows can also be downloaded from the GitHub releases page.

For everyone else, the detailed instructions to install Alacritty can be found here.


  • At least OpenGL ES 2.0
  • [Windows] ConPTY support (Windows 10 version 1809 or higher)


Alacritty versions before 0.13.0 are using YAML configuration files and all their settings were documented in the alacritty.yml. The example alacritty.yml file for each release can be found on GitHub releases page.

You can find the documentation for Alacritty's configuration in man 5 alacritty, or by looking at the scdoc file if you do not have the manpages installed.

Alacritty doesn't create the config file for you, but it looks for one in the following locations:

  1. $XDG_CONFIG_HOME/alacritty/alacritty.toml
  2. $XDG_CONFIG_HOME/alacritty.toml
  3. $HOME/.config/alacritty/alacritty.toml
  4. $HOME/.alacritty.toml


On Windows, the config file should be located at:



A guideline about contributing to Alacritty can be found in the CONTRIBUTING.md file.


Is it really the fastest terminal emulator?

Benchmarking terminal emulators is complicated. Alacritty uses vtebench to quantify terminal emulator throughput and manages to consistently score better than the competition using it. If you have found an example where this is not the case, please report a bug.

Other aspects like latency or framerate and frame consistency are more difficult to quantify. Some terminal emulators also intentionally slow down to save resources, which might be preferred by some users.

If you have doubts about Alacritty's performance or usability, the best way to quantify terminal emulators is always to test them with your specific usecases.

Why isn't feature X implemented?

Alacritty has many great features, but not every feature from every other terminal. This could be for a number of reasons, but sometimes it's just not a good fit for Alacritty. This means you won't find things like tabs or splits (which are best left to a window manager or terminal multiplexer) nor niceties like a GUI config editor.


Alacritty is released under the Apache License, Version 2.0.