Go Bindings for Various External APIs
Bindings to existing C libraries (using cgo).
Please contact me if you know of any others not listed here.
Databases and Storage
- gosqlite - SQLite 3 bindings with a very simple interface. By Russ Cox (one of the main Go developers at Google, so this is probably a good example of how to use cgo).
- gosqlite3 - Go interface for SQLite3 by kuroneko.
- Access SQLite3 databases from Go by phf.
- go-pg - PostgreSQL bindings for Go by oibore (Documentation in Japanese!) (See also the github project).
- mysqlgo - MySQL bindings for Go by Eden Li.
- libmysqlgo - Another wrapper for the MySQL C API, by Bourke Floyd.
- go-mysql - MySQL wrapper for Go by Masaaki Yonebayashi.
- godbc Go ODBC Interface using unixODBC by Benoy R Nair.
- gotyrant - A Go wrapper for tokyo tyrant by Patrick Crosby.
GUIs and Widget Toolkits
- go-gtk Bindings for GTK by Yasuhiro Matsumoto (aka mattn).
- x-go-binding Port of XCB to generate Go bindings for X11 Window System protocol. Originally by Tor Andersson (when the project was known as 'xgb'), now maintained by the Go core team at Google.
- goosurface - An interface to Cairo via GTK by LisbonAcid.
- termbox - A minimalist alternative to ncurses to build terminal-based user interfaces. By nsf.
Graphics and Audio
- Go-OpenGL - Go bindings for OpenGL by banthar.
- gocairo - Golang wrapper for cairo graphics library by Dethe Elza.
- Go-SDL Go bindings for SDL by banthar.
- gosdl - Go wrapper for SDL by xJabberwocky (Abandoned).
- allegro - Basic wrapper for allegro library by Pedro Gracia.
- go-opencv - Bindings for Intel's OpenCV computer vision library. By chaishushan.
Audio
- go-openal - Experimental OpenAL bindings for Go by Peter Froehlich.
- pulsego - Go binding for PulseAudio by Moriyoshi Koizumi.
Video and Multimedia
- go-pkg-libvlc - Bindings to the libVLC media player library. By Jim Teeuwen.
Scripting and Regexps
- golua - Go wrapper for LUA's C API by Adam Fitzgerald (aka fosho)
- go-pkg-lua - Another set of bindings for the Lua scripting language. By Jim Teeuwen.
- go-pkg-pcre - PCRE Regular Expressions wrapper by Jim Teeuwen (aka exch).
Console User Interface
- readline-go - Wrapper around the GNU readline(3) library by
me___(that is Michael Elkins, not me!). - gocurse - Go bindings for NCurses by Timmcd and jabb.
Networking
- gopcap - A simple wrapper around libpcap by Andreas Krennmair.
Hardware
- go-pkg-usb - Libusb bindings that provides an OS-independent interface to access to USB devices. By Jim Teeuwen.
Games
- libtcod-go - Libtcod is a cross-platform library of utilities for writing roguelike games. By Adam Folmert.
Misc
- go-pkg-mtp - Bindings for the libmtp implementation of the Media Transfer Protocol to interact with media devices like MP3 players. By Jim Teeuwen.
- go-pkg-njb - Bindings for the libnjb (Nomad Juke Box) that interacts with older MP3 players. By Jim Teeuwen.
- gomagic - Bindings for the libmagic file identification libary (similar to the Unix file(1) command) by Samuel Alexander Baldwin.
- go-migemo - Bindings for the migemo Japanese incremental search library. By Yasuhiro Matsumoto (aka mattn)