6 releases (1 stable)

1.0.0 May 2, 2023
0.1.4 Oct 23, 2022

#303 in Command-line interface

Download history 1135/week @ 2024-06-14 1123/week @ 2024-06-21 974/week @ 2024-06-28 1340/week @ 2024-07-05 2014/week @ 2024-07-12 1231/week @ 2024-07-19 1242/week @ 2024-07-26 1270/week @ 2024-08-02 1243/week @ 2024-08-09 1337/week @ 2024-08-16 1391/week @ 2024-08-23 1350/week @ 2024-08-30 1287/week @ 2024-09-06 1171/week @ 2024-09-13 1332/week @ 2024-09-20 1122/week @ 2024-09-27

5,075 downloads per month
Used in 2 crates (via libshpool)

MIT license

48KB
958 lines

termini - minimal terminfo

crates.io crates.io

termini is a Rust library that provides access to the terminfo database.

Some highlights of termini include:

  • supports extended capabilities
  • easy to audit (single dependency, < 1k LOC)
  • stability (extensively fuzzed to ensure absence of panics)
  • tested on a wide array of terminfo databases

terminis main differentiating characteristic is that it's focused on providing a very minimal functionality. termini only has a single dependency (home to query the home directory) and has less than 1k LOC. This means that it's easy to maintain/audit, doesn't introduce additional dependencies/compiletime and has a smaller surface area for bugs.

terminis parser has been extensively fuzzed with cargo-fuzz to ensure that no panics occur even for fully malformed input. Furthermore, termini is tested with a large array of compiled terminifo data to ensure it produces the correct results.

Acknowledgements

During the implementation of this crate, the following code was used as reference:

Dependencies

~0–6.5MB
~34K SLoC