# asciigoat's INI parser [![Go Reference][godoc-badge]][godoc] [![Go Report Card][goreport-badge]][goreport] `asciigoat.org/ini` is a simple Go library that very loosly parses [`INI`-style][wikipedia-dosini] documents allowing the implementation of stricter parsers of similar form. **asciigoat** is [MIT](https://opensource.org/license/mit/) licensed. [godoc]: https://pkg.go.dev/asciigoat.org/ini [godoc-badge]: https://pkg.go.dev/badge/asciigoat.org/ini.svg [goreport]: https://goreportcard.com/report/asciigoat.org/ini [goreport-badge]: https://goreportcard.com/badge/asciigoat.org/ini [godoc-lexer]: https://pkg.go.dev/asciigoat.org/core/lexer [godoc-parser-parser]: https://pkg.go.dev/asciigoat.org/ini/parser#Parser [wikipedia-dosini]: https://en.wikipedia.org/wiki/INI_file ## Parser [`parser.Parser`][godoc-parser-parser] uses [`asciigoat`'s lexer][godoc-lexer] to process an `INI`-style document emiting tokens and errors via callbacks. ## Other Implementations Other implementations exist, and they are mature and feature-rich, but they are highly opinionated about what's a valid file. Built around maps they don't allow repeating names and constraint what characters can be used. These are great when you can adapt, or already agree, to their conditions but that's not always the case when you are parsing configuration files from other applications and that's what [asciigoat.org/ini][godoc] attempts to solve. * [gcfg](https://pkg.go.dev/gopkg.in/gcfg.v1) * [unknwon's go-ini](https://github.com/go-ini/ini) * [wlevene's GoINI](https://github.com/wlevene/ini) ## See also * [asciigoat.org/core](https://asciigoat.org/core) * [oss.jpi.io](https://oss.jpi.io) * [INI file][wikipedia-dosini] (_wikipedia_) * [TOML](https://www.kelche.co/blog/go/toml/)