MCPcopy Index your code
hub / github.com/TaKO8Ki/gobang

github.com/TaKO8Ki/gobang @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
481 symbols 955 edges 46 files 9 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
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

Key Description
h, j, k, l Scroll left/down/up/right
Ctrl + u, Ctrl + d Scroll up/down multiple lines
g , G Scroll to top/bottom
H, J, K, L Extend selection by one cell left/down/up/right
y Copy a cell value
, Move focus to left/right
c Move focus to connections
/ Filter
? Help
1, 2, 3, 4, 5 Switch to records/columns/constraints/foreign keys/indexes tab
Esc Hide 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!

Extension points exported contracts — how you extend this code

DrawableComponent (Interface)
(no doc) [8 implementers]
src/components/mod.rs
TableRow (Interface)
(no doc) [12 implementers]
src/database/mod.rs
LineComposer (Interface)
A state machine to pack styled symbols into lines. Cannot implement it as Iterator since it yields slices of the interna [2 …
src/ui/reflow.rs
StatefulDrawableComponent (Interface)
(no doc) [6 implementers]
src/components/mod.rs
Pool (Interface)
(no doc) [3 implementers]
src/database/mod.rs
Component (Interface)
(no doc) [15 implementers]
src/components/mod.rs
MovableComponent (Interface)
(no doc) [1 implementers]
src/components/mod.rs

Core symbols most depended-on inside this repo

len
called by 58
database-tree/src/databasetreeitems.rs
kind
called by 46
database-tree/src/item.rs
run_composer
called by 30
src/ui/reflow.rs
name
called by 23
database-tree/src/item.rs
expand
called by 21
database-tree/src/databasetree.rs
style
called by 19
src/ui/stateful_paragraph.rs
update
called by 17
src/components/table.rs
is_consumed
called by 14
src/components/mod.rs

Shape

Method 297
Function 98
Class 62
Enum 17
Interface 7

Languages

Rust100%

Modules by API surface

src/components/table.rs39 symbols
database-tree/src/databasetree.rs36 symbols
database-tree/src/item.rs33 symbols
src/ui/reflow.rs26 symbols
src/components/command.rs22 symbols
src/database/postgres.rs19 symbols
src/database/sqlite.rs18 symbols
src/database/mysql.rs18 symbols
src/config.rs17 symbols
src/components/mod.rs15 symbols
src/components/databases.rs15 symbols
src/ui/stateful_paragraph.rs14 symbols

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add gobang \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact