41 lines
2.1 KiB
Markdown
41 lines
2.1 KiB
Markdown
# Introduction
|
|
|
|
:wave: Hello Dev!
|
|
|
|
You're reading the official documentation for [XTerminal](https://github.com/henryhale/xterminal).
|
|
|
|
## What is XTerminal?
|
|
|
|
**XTerminal** is a simple and perfomant web-based component written in TypeScript that lets you create command-line interfaces for use in the browser.
|
|
|
|
It builds on top of standard HTML, CSS, and JavaScript to provide a simple yet powerful model that helps you develop command-line interfaces in the browser.
|
|
|
|
**XTerminal** is dependency-free as it requires no dependency to work. Just ship it in and you are just close to setting up your own in-browser CLI.
|
|
|
|
::: tip What You Should Know
|
|
Basic understanding and familiarity with HTML, CSS, and JavaScript is a major preresquite as the documentation assumes you already know.
|
|
If you are totally new to frontend development, it might not be the best idea to jump right into the library as your first step - grasp the basics and then come back!
|
|
:::
|
|
|
|
Now that you know something about **XTerminal**, here is a brief definition of what it does;
|
|
|
|
- In a nutshell, it provides you with a single class from which your can create several terminal instances and mount them onto your webpage.
|
|
|
|
## What XTerminal is not?
|
|
|
|
::: warning
|
|
- XTerminal is not an application that can be downloaded and used just like others on your computer.
|
|
- XTerminal is not a fully fledged terminal application that comprises of all fundamental utility functions. It can't be connected to your terminal nor ssh, it's entirely browser based.
|
|
:::
|
|
|
|
|
|
## Main Objectives
|
|
|
|
The primary goals of this project are:
|
|
|
|
- **Simplicity**: Provide a simple and intuitive API that allows developers to quickly create web-based CLIs without the need for extensive setup or dependencies.
|
|
|
|
- **Performance**: Prioritize performance optimizations to ensure a smooth and responsive CLI experience, even with large outputs or complex interactions.
|
|
|
|
- **Flexibility**: Enable developers to customize and extend the library to meet the specific requirements of their applications. Provide a solid foundation while allowing for easy integration and customization.
|