Cross platform GUI (GTK-based) serial terminal written in Rust

Name Last Update
resources Loading commit data...
src Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.travis.yml Loading commit data...
CHANGELOG.asciidoc Loading commit data...
Cargo.lock Loading commit data...
Cargo.toml Loading commit data...
LICENSE.txt Loading commit data...
README.rst Loading commit data...
appveyor.yml Loading commit data...
screenshot.png Loading commit data...


docs badge crate badge gitlab ci badge appveyor badge travis ci badge

Gattii is a serial terminal emulator that allows one to use a serial port for transmitting and receiving data. This project grew out of my desire to learn Rust. It aims to replace RealTerm, and as such provide a very similar set of functionality. Realterm was invaluable in my robotics work with microcontrollers, but is not actively maintained, difficult to contribute to and improve, and full of bugs, both crashers and usability related.

The name Gattii refers to Cryptococcus Gattii, which is named in solidarity with Rust itself, which was named after the rust family of fungi. I forgot why I originally chose this name, but now I like it so I'm just gonna keep it.




  • Enumerate ports
  • Easily modify settings/change ports
  • Send file
  • Log to file

Software Requirements

This software is written in Rust, and as such requires the Rust toolchain to be installed to build it. Additionally there are library requirements for some of supporting libraries (gtk-rs). As gtk-rs does not support anything older than the current Rust stable release, gattii is also limited to that.

The only tier-1 platform for this is Linux x64, as that's what I develop and test on. I try to be diligent at testing all functionality on Windows, but as it's not my primary OS, some things may slip through the cracks. Windows has Tier 2 support in that compilation testing is done on it, but I don't actively test functionality. That being said, pretty much all functionality should be cross-platform as platform-specific features are under the serialport-rs library.


  1. Install Rust stable using rustup

  2. Install library requirements:
  3. Clone the main repository with git clone https://gitlab.com/susurrus/gattii.git

  4. Run cargo build within the project directory


This project is licensed under the GPL version 3 or later. See the LICENSE file for the license text.

If you received a compiled version of this code, a copy of the source code can be found online at https://gitlab.com/susurrus/gattii.

How to Contribute

There are two ways to contribute to Gattii. The first is to file issues through the Gitlab issue tracker.

If you'd like to contribute code, you may submit a pull request through Gitlab:
  1. Fork Gattii on Gitlab (you'll need an account first)
  2. Clone your fork: git clone https://gitlab.com/YOUR_NAME/gattii.git
  3. Install build dependencies (listed above under Building)
  4. Create commits and push to Gitlab.
  5. Submit a merge request


The send file icon is Upload by AlePio from the Noun Project. The log to file icon is based on Download by AlePio from the Noun Project.