term_app
Version, currently 0.1.11 version
- 0.1.1latestDec 14, 2019
github.com/vlazar/term_app
Functional term/console app environment
Installation
# Add this to your shard.yml
dependencies:
term_app:
github: vlazar/term_app
version: ~> 0.1.1Then run:
shards installshard.yml
- Crystal
0.32.0- License
- MIT
- Author
- Davor Ocelic
Dependencies
Runtime Dependencies
- tput0.3.0github: crystallabs/tput
- event_handler0.14.0github: crystallabs/event_handler
README
Term_app
Term_app is a minimal functional term/console app environment for Crystal.
It is closely related to shards Terminfo and Tput:
Terminfo parses terminfo files into instances of Terminfo::Data or custom classes.
Tput uses Terminfo data and additional methods to configure itself for outputting correct terminal sequences.
Term_app uses Tput and implements a completely usable term/console environment. It sets up event handlers, keys and mouse listeners, and everything else needed to provide a minimal working application.
It is implemented natively and does not depend on ncurses or other external library.
Installation
Add the dependency to shard.yml:
dependencies:
term_app:
github: crystallabs/term_app
version: 0.1.1
Usage in a nutshell
Here is a basic example that starts the application, waits for keypresses or pasted data, prints the received content, and then sets the cursor at screen position x = 10, y = 10:
require "term_app"
my = TermApp::Data.new
my.input.on(TermApp::DataEvent) { |e|
my.tput.print e.data[...e.len]
my.tput.sety 10
my.tput.setx 10
}
sleep 10
API documentation
Run crystal docs as usual, then open file docs/index.html.
Also, see examples in the directory examples/.
Testing
Run crystal spec as usual.
Also, see examples in the directory examples/.
Thanks
- All the fine folks on FreeNode IRC channel #crystal-lang and on Crystal's Gitter channel https://gitter.im/crystal-lang/crystal
Other projects
List of interesting or similar projects in no particular order:
- https://github.com/crystallabs/crysterm - Complete term/console toolkit for Crystal
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.1.1- Tagged
- Dec 14, 2019
- Commit
23827e3822ee- Crystal
0.32.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/vlazar/term_app
Metadata
- Created
- Oct 15, 2026
- Updated
- Nov 10, 2026
- Synced
- Nov 5, 2026
- Versions
- 1