ANSI Escape Sequence provider & parser
  • Rust 99.5%
  • Shell 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Reynard User fbc6e69900
Some checks failed
beta / beta on ubuntu-latest (push) Has been cancelled
nightly / nightly on ubuntu-latest (push) Has been cancelled
stable / stable on macOS-latest (push) Has been cancelled
stable / stable on ubuntu-latest (push) Has been cancelled
stable / stable on windows-2019 (push) Has been cancelled
chore: sync dependencies (monorepo)
2026-04-11 00:44:58 +02:00
.github Add myself as a code owner. 2025-07-01 15:32:20 +01:00
anes chore: sync dependencies (monorepo) 2026-04-11 00:44:58 +02:00
fuzzer Update to 2024 edition. 2025-07-01 15:44:13 +01:00
interactive-test Update to 2024 edition. 2025-07-01 15:44:13 +01:00
scripts Add parser (#15) 2019-11-29 16:09:45 +01:00
.gitignore Include Cargo.lock in repository. (#42) 2025-07-01 15:24:42 +01:00
Cargo.lock Prepare for 0.2.1 release. 2025-07-01 15:47:55 +01:00
Cargo.toml chore: sync dependencies (monorepo) 2026-04-06 15:20:44 +02:00
CHANGELOG.md Prepare for 0.2.1 release. 2025-07-01 15:47:55 +01:00
LICENSE-APACHE Add Apache-2.0 license 2019-10-28 09:29:19 +01:00
LICENSE-MIT Add Apache-2.0 license 2019-10-28 09:29:19 +01:00
README.md Add parser (#15) 2019-11-29 16:09:45 +01:00

Stable Status Beta Status Nightly Status crates.io docs.rs MIT Apache 2.0 LOC

ANSI Escape Sequences provider & parser

This README file is for the anes-rs repository. If you're looking for the user documentation, please, go to anes/README.md.

Repository organisation

anes-rs
 ├ README.md        - this README
 ├ anes             - `anes` crate
 │  ├ benches       - `anes` crate benchmarks
 │  ├ examples      - `anes` crate examples
 │  ├ src           - `anes` crate source code
 │  ├ tests         - `anes` crate tests
 │  └ README.md     - `anes` crate README for crates.io site
 ├ fuzzer            - fuzzing binary targets
 ├ interactive-test  - interactive test for the `anes` crate
 └ scripts           - various scripts to run bechmarks, fuzzer, ...

Benchmarks

You can run benchmarks with the scripts/bench.sh script. criterion output is available in the anes/target/criterion folder. If you'd like to modify the parser module (anes/src/parser) in any way, please, do:

  • run benchmarks,
  • modify the parser code,
  • run benchmarks again.

Do not commit any change which degrades the parser performance. TIA!

Fuzzer

You can start fuzzing with the scripts/fuzz.sh script. Feel free to stop fuzzing any time with the Ctrl C, AFL allows you to continue with the scripts/fuzz-continue.sh script.

Motivation

There're couple of terminal crates like:

All these crates do share two pieces of code:

  • ANSI escape sequences and
  • input event parsers.

I think that it's a waste of resources and asked Timon (the crossterm crate maintainer) what he thinks about a new crate as a building block for the crossterm and other crates. And here we are ...

License

The ANES crate is dual-licensed under Apache 2.0 and MIT terms.

Copyrights in the ANES project are retained by their contributors. No copyright assignment is required to contribute to the ANES project.