ROTE - Our Own Terminal Emulation Library
What is it?
ROTE is a simple C library for VT102 terminal emulation. It allows the
programmer to set up virtual 'screens' and send them data. The virtual
screens will emulate the behavior of a VT102 terminal, interpreting
escape sequences, control characters and such. The library supports
ncurses as well so that you may render the virtual screen to the real
screen when you need to.
Download
To download the current version of ROTE, follow the link below.
How is it licensed?
ROTE is licensed under the GNU Lesser General Public License, which
means it can be used to develop both free and proprietary software
(under certain conditions - please click here
to see the full text of the license.
Author
This library was written by Bruno Takahashi C. de Oliveira, a
Computer Science student at Universidade de São Paulo, Brazil.
My e-mail address is the following (slightly garbled to avoid spam
bots):
@
brunotc gmail.com
Other programs by the same author:
Programs that use libROTE
- Omnitty SSH multiplexer is a
curses-based program that allows one to log into several machines
simultaneously and interact with them, selectively directing input to
individual machines or groups of selected machines.
- Anyterm: A Terminal Anywhere
is a suite of programs/scripts that make it possible to create a box on
a web page that behaves like a shell or other text-mode application on the host
machine. Performance it quite respectable and it will run almost anywhere since
it uses only HTTP on standard ports.
More Details
There are several programs that do terminal emulation, such as xterm, rxvt,
screen and even the Linux console driver itself. However, it is not easy to
isolate their terminal emulation logic and put it in a module that can be
easily reused in other programs. That's where the ROTE library comes in.
The goal of the ROTE library is to provide terminal emulation support
for C/C++ applications, making it possible to write programs that display
terminals in embedded windows within them, or even monitor the display
produced by other programs.
The ROTE library does not depend on any fancy library: only libc and ncurses.
The ROTE library is able to render the virtual screens
to the physical screen (actually any ncurses window) and can also translate
ncurses key codes to the escape sequences the Linux console would have
produced (and feed them into the terminal). Using ncurses is not mandatory
however, and ROTE will work fine without it, but in that case the application
must take care of drawing the terminal to the screen in whichever way it
sees fit.
ROTE also encapsulates the functionality needed to execute a child process
using the virtual screen as the controlling terminal. It will handle the
creation of the pseudo-terminal and the child process. All the application
has to do is tell it the command to run in the terminal and call an update
function at regular intervals to allow the terminal to update itself.