3 Commits

Author SHA1 Message Date
amery c92e0df47b chore: update asciigoat.org/core
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-01 13:04:05 +00:00
amery cf100578c0 Merge pull request 'README: add initial description of the package' (#3)
Reviewed-on: #3
2023-09-01 15:02:34 +02:00
amery 2eacc65215 README: add initial description of the package
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-01 12:57:55 +00:00
3 changed files with 50 additions and 3 deletions
+47
View File
@@ -0,0 +1,47 @@
# 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/)
+1 -1
View File
@@ -3,7 +3,7 @@ module asciigoat.org/ini
go 1.19
require (
asciigoat.org/core v0.3.6
asciigoat.org/core v0.3.7
github.com/mgechev/revive v1.3.3
golang.org/x/tools v0.12.0
)
+2 -2
View File
@@ -1,5 +1,5 @@
asciigoat.org/core v0.3.6 h1:b1vL090OxylmSOwLQryjrmC8FhhCtktMyeJSy1e6LwI=
asciigoat.org/core v0.3.6/go.mod h1:tXj+JUutxRbcO40ZQRuUVaZ4rnYz1kAZ0nblisV8u74=
asciigoat.org/core v0.3.7 h1:tMasdvZgsMJJMVsZVfXXB5lqq82pFiCsyEmOEmcmAfI=
asciigoat.org/core v0.3.7/go.mod h1:tXj+JUutxRbcO40ZQRuUVaZ4rnYz1kAZ0nblisV8u74=
github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/chavacava/garif v0.0.0-20230608123814-4bd63c2919ab h1:5JxePczlyGAtj6R1MUEFZ/UFud6FfsOejq7xLC2ZIb0=