TaKO8Ki/gobang

A cross-platform TUI database management tool written in Rust

3,317

stars

128

commits

Rust

primary language

Nov 10, 2023

updated

database
rust
sql
terminal
tui

README

gobang

gobang is currently in alpha

A cross-platform TUI database management tool written in Rust

github workflow status crates

gobang

Features

  • Cross-platform support (macOS, Windows, Linux)
  • Multiple Database support (MySQL, PostgreSQL, SQLite)
  • Intuitive keyboard only control

TODOs

  • SQL editor
  • Custom key bindings
  • Custom theme settings
  • Support the other databases

What does "gobang" come from?

gobang means a Japanese game played on goban, a go board. The appearance of goban looks like table structure. And I live in Kyoto, Japan. In Kyoto city, streets are laid out on a grid (We call it “goban no me no youna (碁盤の目のような)”). They are why I named this project "gobang".

Installation

With Homebrew (Linux, macOS)

If you’re using Homebrew or Linuxbrew, install the gobang formula:

brew install tako8ki/tap/gobang

On Windows

If you're a Windows Scoop user, then you can install gobang from the official bucket:

scoop install gobang

On NixOS

If you're a Nix user, you can install gobang from nixpkgs:

$ nix-env --install gobang

On Archlinux

If you're an Archlinux user, you can install gobang from AUR:

paru -S gobang-bin

On NetBSD

If you're a NetBSD user, then you can install gobang from pkgsrc:

pkgin install gobang

With Cargo (Linux, macOS, Windows)

If you already have a Rust environment set up, you can use the cargo install command:

cargo install --version 0.1.0-alpha.5 gobang

From binaries (Linux, macOS, Windows)

Usage

$ gobang
$ gobang -h
USAGE:
    gobang [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -c, --config-path <config-path>    Set the config file

If you want to add connections, you need to edit your config file. For more information, please see Configuration.

Keymap

KeyDescription
h, j, k, lScroll left/down/up/right
Ctrl + u, Ctrl + dScroll up/down multiple lines
g , GScroll to top/bottom
H, J, K, LExtend selection by one cell left/down/up/right
yCopy a cell value
, Move focus to left/right
cMove focus to connections
/Filter
?Help
1, 2, 3, 4, 5Switch to records/columns/constraints/foreign keys/indexes tab
EscHide pop up

Configuration

The location of the file depends on your OS:

  • macOS: $HOME/.config/gobang/config.toml
  • Linux: $HOME/.config/gobang/config.toml
  • Windows: %APPDATA%/gobang/config.toml

The following is a sample config.toml file:

[[conn]]
type = "mysql"
user = "root"
host = "localhost"
port = 3306

[[conn]]
type = "mysql"
user = "root"
host = "localhost"
port = 3306
password = "password"
database = "foo"
name = "mysql Foo DB"

[[conn]]
type = "postgres"
user = "root"
host = "localhost"
port = 5432
database = "bar"
name = "postgres Bar DB"

[[conn]]
type = "sqlite"
path = "/path/to/baz.db"

Contribution

Contributions, issues and pull requests are welcome!

Contributors

TaKO8Ki

118 commits

utam0k

3 commits

kyoto7250

1 commits

mi-wada

1 commits

TaKO8Ki/gobang

A cross-platform TUI database management tool written in Rust

3,317

stars

128

commits

Rust

primary language

Nov 10, 2023

updated

database
rust
sql
terminal
tui

README

gobang

gobang is currently in alpha

A cross-platform TUI database management tool written in Rust

github workflow status crates

gobang

Features

  • Cross-platform support (macOS, Windows, Linux)
  • Multiple Database support (MySQL, PostgreSQL, SQLite)
  • Intuitive keyboard only control

TODOs

  • SQL editor
  • Custom key bindings
  • Custom theme settings
  • Support the other databases

What does "gobang" come from?

gobang means a Japanese game played on goban, a go board. The appearance of goban looks like table structure. And I live in Kyoto, Japan. In Kyoto city, streets are laid out on a grid (We call it “goban no me no youna (碁盤の目のような)”). They are why I named this project "gobang".

Installation

With Homebrew (Linux, macOS)

If you’re using Homebrew or Linuxbrew, install the gobang formula:

brew install tako8ki/tap/gobang

On Windows

If you're a Windows Scoop user, then you can install gobang from the official bucket:

scoop install gobang

On NixOS

If you're a Nix user, you can install gobang from nixpkgs:

$ nix-env --install gobang

On Archlinux

If you're an Archlinux user, you can install gobang from AUR:

paru -S gobang-bin

On NetBSD

If you're a NetBSD user, then you can install gobang from pkgsrc:

pkgin install gobang

With Cargo (Linux, macOS, Windows)

If you already have a Rust environment set up, you can use the cargo install command:

cargo install --version 0.1.0-alpha.5 gobang

From binaries (Linux, macOS, Windows)

Usage

$ gobang
$ gobang -h
USAGE:
    gobang [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -c, --config-path <config-path>    Set the config file

If you want to add connections, you need to edit your config file. For more information, please see Configuration.

Keymap

KeyDescription
h, j, k, lScroll left/down/up/right
Ctrl + u, Ctrl + dScroll up/down multiple lines
g , GScroll to top/bottom
H, J, K, LExtend selection by one cell left/down/up/right
yCopy a cell value
, Move focus to left/right
cMove focus to connections
/Filter
?Help
1, 2, 3, 4, 5Switch to records/columns/constraints/foreign keys/indexes tab
EscHide pop up

Configuration

The location of the file depends on your OS:

  • macOS: $HOME/.config/gobang/config.toml
  • Linux: $HOME/.config/gobang/config.toml
  • Windows: %APPDATA%/gobang/config.toml

The following is a sample config.toml file:

[[conn]]
type = "mysql"
user = "root"
host = "localhost"
port = 3306

[[conn]]
type = "mysql"
user = "root"
host = "localhost"
port = 3306
password = "password"
database = "foo"
name = "mysql Foo DB"

[[conn]]
type = "postgres"
user = "root"
host = "localhost"
port = 5432
database = "bar"
name = "postgres Bar DB"

[[conn]]
type = "sqlite"
path = "/path/to/baz.db"

Contribution

Contributions, issues and pull requests are welcome!

Contributors

TaKO8Ki

118 commits

utam0k

3 commits

kyoto7250

1 commits

mi-wada

1 commits

Languages

Rust

100.0%