An open source library for writing terminal applications in Java under ASL 2.0.
Consuming the lib
Add this dependency to your build.
<dependency> <groupId>io.termd</groupId> <artifactId>termd-core</artifactId> <version>1.0.0</version> </dependency>
Snapshots are available from Sonatype OSS repository
- Telnet/SSH using Netty 4 or Vert.x 3
- Web interface using term.js and SockJS/Websocket
- Event based design
- read events
- window size
- tty signals
- Readline implementation
- extensible with plugable functions
- multi-line support
- multi-byte char support
- multi-cell char support
- Unicode support
- Terminfo capabilities
Termd provides its own implementation of Telnet written on top of Netty 4.
Termd provides an implementation of Apache SSHD backed by Netty 4.
Termd in a web page using the term.js client library and Netty websockets.
- what is not Termd ?
- not a shell
- not an arg parser
- not a command framework
- why async style ?
- keyboard, ctrl-c, etc... event processing is easy to program against
- why would I use Termd ?
- you want to write a terminal application easily
- you want to support various protocols like SSH, telnet or a web interface
- you don't care about the technical details
A simple examples showing TTY events.
A simple examples showing how to use Readline.
A simple examples showing how to extend Readline with a custom function that reverse the line content.
A simple shell example giving an overview of TTY interactions.
Broadcast the desktop to the client, focusing on pushing data to the TTY.
The popular Snake game on the event loop.
A funny demo effect using unicode chars.
A simple telnet example that shows Telnet options negociation.
- dynamic prompt
- see to use IntStream or not
- handle % stuff in parser
- foobar@ for any foobar, not only boolean and treat it as a removal
Try to use the maven install plugin to install artifacts with specific dependencies.