Projects with Go

wr

A work-in-progress simple vim-like text editor, with multiple cursors as its base concept. It is written from scratch in Go, using my custom rope implementation and curses alternative. Its goal is to be kept simple and customizable, so it uses higher order functions to represent both actions and movements.

It can be found is here

Technologies used: Linux, Go, curses,

hexes

Simple curses alternative written from scratch in Go using ANSI escape codes, which includes both cursor optimizations and an event system for keyboard and mouse inputs.

It includes a series of examples, including Snake, Game of Life and an Image Viewer.

Here is the code

Technologies used: Go, curses,

bitprint

A simple program which creates banners from the input with bitmap fonts, using Unicode block elements.

The code is found here

Technologies used: Go, Linux,

Hooke

Second re-write of the open source plagiarism detection engine, this time with an special enfasis on the cleaness of the code and modularity.

Go was chosen because of its great speed and package system.

You can see the code here

Technologies used: Go, NLP,

mva

A simple bulk rename utility, meant as a simple unix-like command.

The code is here

Technologies used: Go, Shell/Bash/Zsh,

parser

A parser combinator library for go, with support for regular expressions. It also has a test calculator-like language, which can evaluate mathematical expressions.

The code is here

Technologies used: Go, Parsing,

proper

A Property Testing library written in Go, using the built-in reflection features. Properties are defined as functions which must return true on randomly generated inputs.

Here is the repo

Technologies used: Go,

rope

An implementation of a generic persistent rope data structure using the new Go 1.18 generics. It uses only nondestructive operations, and allows fast insertion in long strings with snapshots of every version.

The repository is here

Technologies used: Go,

td

A minimalistic hierarchical todo list program, written using go and ncurses. It allows for the use of a unit of effort/time, and partial completion with it.

The code is here

Technologies used: Go, curses,

termplot

A go package for generating graphs of arbitrary functions, including comparisons. It uses standard ANSI escape codes to display.

You can find it here

Technologies used: Go, Linux,

Timan

A program that manages and limits time on Windows apps. It was built with Go, and it consists of a small webserver which uses windows commands to manage running applications.

You can find the code here

Technologies used: Go, Web Server, Windows, HTML + CSS, JavaScript,

trandr

A simple TUI wrapper for xrandr, made in go.

The code is here

Technologies used: Go, Linux, Shell/Bash/Zsh,