starfish is a simple, SDL based, 2D graphics and user input library for Go. If you intend to work on it, please fork from the 'devel' branch, not 'master'. Current release: 0.12.0
Go C C++
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

What is starfish?

What starfish is:

starfish is a simple 2D graphics and user input library for Go built on SDL.

What starfish is not:

While it is built on SDL, unlike many SDL wrappers, starfish is not meant to replicate the SDL API, only leverage it. Don't expect knowledge of SDL to be beneficial when using this library.

This is done for two reasons:

  • If a better foundation comes along or SDL is no longer sufficient, it will be a simple matter to reimplement starfish with it.
  • SDL has more options than most programmers care about for simple applications. A greater number of options leads to greater complexity and a higher learning curve.

Getting starfish:


Install GCC, SDL, SDL_gfx, SDL_image, and SDL_ttf:

  • RHEL-like systems the following should work:

        yum install gcc SDL-devel SDL_gfx-devel SDL_image-devel SDL_ttf-devel
  • Arch Linux the following should work:

        pacman -S gcc sdl2 sdl2_gfx sdl2_image sdl2_ttf
  • Anyone feel free to add instructions for other systems here.


Install the lastest and greatest stable release

To install starfish, the following should pull and install all four starfish packages:

        go get
        go get

Install release any release/branch you want (0.11.1 and later)

        cd $GOPATH/src
        mkdir -p gtalent
        cd gtalent
        rm -rf starfish
        git clone
        cd starfish
        git checkout origin/<release or tag you want here>
        make install