ltsv
CategoryText Processing
SubcategoryParsers/Encoders/Decoders
Stars0
High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go
About ltsv
ltsv
High performance LTSV (Labeled Tab Separeted Value) parser for Go.
About LTSV: http://ltsv.org/
Labeled Tab-separated Values (LTSV) format is a variant of
Tab-separated Values (TSV). Each record in a LTSV file is represented
as a single line. Each field is separated by TAB and has a label and
a value. The label and the value have been separated by ':'. With
the LTSV format, you can parse each line by spliting with TAB (like
original TSV format) easily, and extend any fields with unique labels
in no particular order.
Installation
go get github.com/Wing924/ltsv
Examples
package main
import (
"fmt"
"github.com/Wing924/ltsv"
)
func main() {
line := []byte("foo:123\tbar:456")
record, err := ltsv.ParseLineAsMap(line, nil)
if err != nil {
panic(err)
}
fmt.Printf("%#v", record) // map[string]string{"foo":"123", "bar":"456"}
}
Benchmarks
Benchmark against
- Songmu/go-ltsv: 635% faster
- ymotongpoo/goltsv: 365% faster
- najeira/ltsv: 782% faster
Source code: bench/line_test.go.
Result
$ go test -bench . -benchmem
goos: darwin
goarch: amd64
pkg: github.com/Wing924/ltsv/bench
Benchmark_line_Wing924_ltsv-4 2000000 626 ns/op 224 B/op 17 allocs/op
Benchmark_line_Wing924_ltsv_strict-4 2000000 788 ns/op 224 B/op 17 allocs/op
Benchmark_line_Songmu_goltsv-4 300000 3975 ns/op 1841 B/op 32 allocs/op
Benchmark_line_ymotongpoo_goltsv-4 500000 2286 ns/op 5793 B/op 17 allocs/op
Benchmark_line_najeira_ltsv-4 300000 4896 ns/op 5529 B/op 26 allocs/op
PASS
ok github.com/Wing924/ltsv/bench 8.245s
Frequently Asked Questions
What is ltsv?
ltsv is a Text Processing library for the Go programming language. High performance [LTSV (Labeled Tab Separated Value)](http://ltsv.org/) reader for Go
How do I install ltsv?
Install ltsv with the Go module system using `go get Wing924/ltsv`. Check the repository for the current installation instructions.
What category does ltsv belong to?
ltsv is listed under Text Processing, specifically Parsers/Encoders/Decoders.