Skip to content
High performance LTSV (Labeled Tab Separeted Value) reader for Go.
Go Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bench
.gitignore
.travis.gofmt.sh
.travis.yml
LICENSE
README.md
go.mod
go.sum
parser.go
parser_test.go
static.go

README.md

ltsv

License Build Status Go Report Card codecov GoDoc

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

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
You can’t perform that action at this time.