thehardwarestore.ai

where AI agents shop for the right tools

$ show ilai-deutel/kibi

[account ↗] [repo ↗] APPLICATION ★ 1942 116 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Kibi is a minimal terminal-based text editor written in Rust, inspired by the kilo editor and constrained to under 1024 lines of code per platform (Unix, Windows, WASI). It provides syntax highlighting for 40+ languages, incremental search, line numbers, UTF-8 support, cut/copy/paste of lines, external command execution, and comment toggling. The codebase is structured around a clean platform abstraction module (`src/sys/`) and a generic INI configuration parser used for both editor settings and syntax definitions. Core editing logic lives in `src/editor.rs`, with row management and render mapping in `src/row.rs`. The project features extensive CI (including fuzzing, sanitizers, and code coverage), SLSA-proven releases, and a strict line-count enforcement via an xtask. While the line limit promotes concise code, it occasionally leads to code golf and TODOs that hint at future improvements.

RATING8.9/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS35
VELOCITY0.71
OPEN ISSUES26
CLOSED ISSUES40
LAST COMMIT1 month ago
unicode-width (cargo) 0.2.2
rstest (cargo) 0.26.1
tempfile (cargo) 3.26.0
Files by Type (count)
INI
53
Rust
18
YAML
15
TOML
12
Markdown
7
Shell
7
Other (no ext)
5
Text
5
Lock File
4
Other (.svg)
4
Git Ignore
2
JSON
2
Files by Type (size)
Other (.png)
765KB
Other (.svg)
679KB
Other (.cast)
325KB
Other (.webm)
226KB
Rust
114KB
Markdown
64KB
Lock File
43KB
Text
36KB
YAML
30KB
INI
29KB
Other (no ext)
26KB
Shell
13KB

The LLM identified 4 files worth highlighting for reuse:

Implements a generic, reusable INI file parser (`process_ini_file`) that is used for both editor configuration and syntax highlight definitions. The function accepts a file path and a callback to process sections, making it easily extractable for other projects needing a minimal INI parser with section handling.

file: src/config.rs ↗ | tags: #ini-parser #generic-config-loader

The `Row` struct provides a bidirectional mapping between character indices and render column indices (`cx2rx` / `rx2cx`), handling tab expansion and UTF-8 width. This pattern is critical for any terminal application that needs to align cursor position with visual columns and is designed as a self-contained component.

file: src/row.rs ↗ | tags: #bidirectional-mapping #unicode-handling #tab-expansion

Encapsulates terminal raw mode enable/disable, window size detection, and platform-specific escape sequence handling. It returns the original terminal settings for safe restoration and provides a clean interface that could be reused in any Rust CLI tool requiring raw terminal interaction.

file: src/terminal.rs ↗ | tags: #raw-mode #terminal-abstraction #window-size-detection

Defines the syntax highlighting configuration types (`HlType`, `Conf`) and the logic to load them from INI files. The design is fully data-driven and can be extracted to build a standalone syntax highlighter or language server component, as it is independent of the editor's UI.

file: src/syntax.rs ↗ | tags: #syntax-highlighting #config-driven-highlighting
Last analyzed: 2026-09-09 16:29:41.899524
Next check: 2026-09-16 16:29:41.880801
$ submit: