INI [![Build Status](https://travis-ci.org/go-ini/ini.svg?branch=master)](https://travis-ci.org/go-ini/ini) [![Sourcegraph](https://img.shields.io/badge/view%20on-Sourcegraph-brightgreen.svg)](https://sourcegraph.com/github.com/go-ini/ini) === ![](https://avatars0.githubusercontent.com/u/10216035?v=3&s=200) Package ini provides INI file read and write functionality in Go. ## Features - Load from multiple data sources(`[]byte`, file and `io.ReadCloser`) with overwrites. - Read with recursion values. - Read with parent-child sections. - Read with auto-increment key names. - Read with multiple-line values. - Read with tons of helper methods. - Read and convert values to Go types. - Read and **WRITE** comments of sections and keys. - Manipulate sections, keys and comments with ease. - Keep sections and keys in order as you parse and save. ## Installation The minimum requirement of Go is **1.6**. ```sh $ go get gopkg.in/ini.v1 ``` Please add `-u` flag to update in the future. ## Go Modules For historical reason, people use two different import paths for this package: `github.com/go-ini/ini` and `gopkg.in/ini.v1`. If you get error similar to the following one: ``` go: finding github.com/go-ini/ini v0.0.0-00010101000000-000000000000 go: github.com/go-ini/ini@v0.0.0-00010101000000-000000000000: unknown revision 000000000000 go: error loading module requirements ``` It is because one of your dependencies is using deprecated import path `github.com/go-ini/ini`, you can make a quick fix by adding the following line to your `go.mod` file (`v.1.44.0` was the latest version tagged on `master` branch): ``` replace github.com/go-ini/ini => gopkg.in/ini.v1 v1.44.0 ``` ## Getting Help - [Getting Started](https://ini.unknwon.io/docs/intro/getting_started) - [API Documentation](https://gowalker.org/gopkg.in/ini.v1) ## License This project is under Apache v2 License. See the [LICENSE](LICENSE) file for the full license text.