bittty
A pure Python terminal emulator.
Demo
Run the standalone demo:
python ./demo/terminal.py
Or use the textual demo to see it in a TUI:
uvx textual-tty
Links
License
WTFPL with one additional clause
- Don't blame me
Do wtf you want, but don't blame me when it rips a hole in your trousers.
Recent changes
- 🏃 more performance
- 🏗️ rewrite architecture
- 🐛 scroll region: scroll up in
vimcorrupts outside scroll region - 🏃 squeeze another 15% performance out of it
- ✀ fix utf8 and escape code splitting across buffer boundaries
- 🪟 tests run on Windows runner
- 📉 added parser benchmarking and tui graphs
- 🐌 use regex for parsing to speed things up a tad (~2x faster)
- 📚 document half a billion DEC private modes we don't support
- 🔙 DECLM - allow
\nto act like\r\nso we don't have to rely on cooked input on the pty when using as a library. - 🖼️ DEC Special Graphics
- 🐌 Faster colour/style parser
- ⛓️💥 Split out from
textual-ttyinto separate package
bugs / todo
- Implement grapheme clustering (thanks Xavier G)
-
SIGWINCHhandler atomicity + buffer resizes - architecture - pretty big
- gui
- make a terminal input class, for standalone input
- make
framebuffer.py - choose a display driver
- performance improvements
- reconsider CSI end char approach
- line cache for outputs
- [.] revisit colours / styles
- scrollback buffer
- implement
logloglogfor scrollback with wrapping
- implement
- add terminal overlay visuals
- bell flash effect
- make cursor an overlay
- make mouse an overlay
- debug overlay for scroll regions
- Support themes
- bittty-specific escape sequences
- visible mouse on / off
- debugging info
- record
- list sequences + values
- Document all the escape sequences
- collect books for a terminal library
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bittty-0.1.1.tar.gz
(78.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
bittty-0.1.1-py3-none-any.whl
(93.4 kB
view details)
File details
Details for the file bittty-0.1.1.tar.gz.
File metadata
- Download URL: bittty-0.1.1.tar.gz
- Upload date:
- Size: 78.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc7421c3760adfa53b707d47f80dae7b527eb95520d7a9400c1bfb07a2230c01
|
|
| MD5 |
19b95aee85a2955f474f72e7db603865
|
|
| BLAKE2b-256 |
02d0fda79e6291b9d0a3e0bce2f6ec5f44544183381b2e0e45f97f187ae3fc93
|
File details
Details for the file bittty-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bittty-0.1.1-py3-none-any.whl
- Upload date:
- Size: 93.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37aa8454d3e73c50e95b7ea9f80f0834088c3e9c03d79dc3d3566b66b4774860
|
|
| MD5 |
2cfb04e50d6cadef96301ac92bae0762
|
|
| BLAKE2b-256 |
79dd500d209f08345bef4174260ef5b263d527e8c36799eff2a503c786efbe32
|