grymmjack / icy_term

Old school ANSI/AVT terminal program for modern systems.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

icy_term

IcyTERM is a BBS terminal program with allows you to connect to BBSes. Visit https://www.telnetbbsguide.com/ for a start to enter the BBS world.

Features supported so far:

  • Platforms: Linux, macOs, Windows
  • Telnet, SSH, Websockets and Raw connections.
  • Ansi BBS, Avatar, PETSCII, ATASCII and Viewdata emulation
  • File transfer X/Y/Z Modem and variants (1k/1k-G/8k)
  • Rich set of ansi features
    • Modern engine with extended colors, 24bit fonts, ice support
    • Sixels, loadable fonts, ansi macros, osc8 www links
    • ANSI music
  • Misc features
    • 3D accelerated rendering engine
    • IEMSI autologin
    • Baud emulation
    • Exporting buffer to disk & capture session
    • Copy & Paste
  • And many more. If something is missing open a feature request :)

Get binaries

Get the latest release here: https://github.com/mkrueger/icy_term/releases/latest

Screenshots

Code page 437 (aka "DOS") support:

DOS

Petscii screenshot:

Petscii

Atascii screenshot:

Petscii

Viewdata screenshot:

Viewdata

History

I had an own BBS back in the 90'. When I started rust I searched a project and some days earlier I spoke with my wife about the good old days, PCBoard and then I got the idea to improve the PPL decompiler we used these days. That was my first project and it was successful (https://github.com/mkrueger/PPLEngine). Around that time I learned that there are still BBSes in the internet and I started to update my old ansi drawing tool (MysticDraw) however I lost a bit track because of the gtk4 bindings. It's very difficult to write even a mid sized UI application with these.

First I tried to ressurect my old ansi drawing tool (Mystic Draw) using gtk4 bindings. But they didn't really suit my needs. Tried Druid/Egui/Iced and decided to do a smaller project that relies on an ansi engine too.

So I decided to do a terminal program. After a first implementation with iced (cool library, can recommend) I switched to egui because I needed an opengl control and the support in iced for that was lacking at that point of time.

So this was more of a test project for the ansi engine & writing rust UI apps but it got a bit larger than I thought and now IcyTerm is a fully featured terminal app for BBSes.

Build instructions

  • Install rust toolchain: https://www.rust-lang.org/tools/install
  • On linux you need "sudo apt-get install build-essential libgtk-3-dev libasound2-dev libxcb-shape0-dev libxcb-xfixes0-dev"
  • Then you're ready to go "cargo run"

About

Old school ANSI/AVT terminal program for modern systems.

License:Apache License 2.0


Languages

Language:Rust 96.4%Language:Fluent 2.4%Language:HTML 0.9%Language:JavaScript 0.1%Language:Shell 0.1%