File: README.md

package info (click to toggle)
rust-termini 1.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 172 kB
  • sloc: makefile: 8
file content (30 lines) | stat: -rw-r--r-- 1,437 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# termini - minimal terminfo
[![crates.io](https://img.shields.io/crates/v/termini?style=flat-square)](https://crates.io/crates/termini)
![crates.io](https://img.shields.io/crates/l/termini?style=flat-square)

`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

`termini`s 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.

`termini`s 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:

* [terminfo](https://github.com/meh/rust-terminfo)
* [term](https://github.com/Stebalien/term)
* [cxterminfo](https://github.com/BxNiom/cx-terminfo)
* [pyterminfo](https://github.com/DirectXMan12/py-terminfo)