INI parsing library for Go.
Failed to load latest commit information.
LICENSE Added MIT LICENSE file Apr 23, 2013 Improved the behaviour of parseFile wrt. when sections are defined. Sep 18, 2013
ini_linux_test.go Moved LoadFile test to a linux-only test file. Sep 23, 2013
ini_test.go Moved LoadFile test to a linux-only test file. Sep 23, 2013


INI parsing library for Go (golang).

View the API documentation here.


Parse an INI file:

import ""

file, err := ini.LoadFile("myfile.ini")

Get data from the parsed file:

name, ok := file.Get("person", "name")
if !ok {
  panic("'name' variable missing from 'person' section")

Iterate through values in a section:

for key, value := range file["mysection"] {
  fmt.Printf("%s => %s\n", key, value)

Iterate through sections in a file:

for name, section := range file {
  fmt.Printf("Section name: %s\n", name)

File Format

INI files are parsed by go-ini line-by-line. Each line may be one of the following:

  • A section definition: [section-name]
  • A property: key = value
  • A comment: #blahblah or ;blahblah
  • Blank. The line will be ignored.

Properties defined before any section headers are placed in the default section, which has the empty string as it's key.


# I am a comment
; So am I!

colour = red or green
shape = applish

shape = square
colour = blue