
Security News
Vite Releases Technical Preview of Rolldown-Vite, a Rust-Based Bundler
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
github.com/savaki/jq
A high performance Golang implementation of the incredibly useful jq command line tool.
Rather than marshalling json elements into go instances, jq opts to manipulate the json elements as raw []byte. This is especially useful for apps that need to handle dynamic json data.
Using jq consists of creation an Op
and then calling Apply
on the Op
to transform one []byte into the
desired []byte. Ops may be chained together to form a transformation chain similar to how the command line jq works.
go get github.com/savaki/jq
package main
import (
"fmt"
"github.com/savaki/jq"
)
func main() {
op, _ := jq.Parse(".hello") // create an Op
data := []byte(`{"hello":"world"}`) // sample input
value, _ := op.Apply(data) // value == '"world"'
fmt.Println(string(value))
}
The initial goal is to support all the selectors the original jq command line supports.
syntax | meaning |
---|---|
. | unchanged input |
.foo | value at key |
.foo.bar | value at nested key |
.[0] | value at specified element of array |
.[0:1] | array of specified elements of array, inclusive |
.foo.[0] | nested value |
{
"string": "a",
"number": 1.23,
"simple": ["a", "b", "c"],
"mixed": [
"a",
1,
{"hello":"world"}
],
"object": {
"first": "joe",
"array": [1,2,3]
}
}
syntax | value |
---|---|
.string | "a" |
.number | 1.23 |
.simple | ["a", "b", "c"] |
.simple.[0] | "a" |
.simple.[0:1] | ["a","b"] |
.mixed.[1] | 1 |
.object.first | "joe" |
.object.array.[2] | 3 |
BenchmarkAny-8 20000000 80.8 ns/op 0 B/op 0 allocs/op
BenchmarkArray-8 20000000 108 ns/op 0 B/op 0 allocs/op
BenchmarkFindIndex-8 10000000 125 ns/op 0 B/op 0 allocs/op
BenchmarkFindKey-8 10000000 125 ns/op 0 B/op 0 allocs/op
BenchmarkFindRange-8 10000000 186 ns/op 16 B/op 1 allocs/op
BenchmarkNumber-8 50000000 28.9 ns/op 0 B/op 0 allocs/op
BenchmarkObject-8 20000000 98.5 ns/op 0 B/op 0 allocs/op
BenchmarkString-8 30000000 40.4 ns/op 0 B/op 0 allocs/op
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
Research
Security News
A malicious npm typosquat uses remote commands to silently delete entire project directories after a single mistyped install.
Research
Security News
Malicious PyPI package semantic-types steals Solana private keys via transitive dependency installs using monkey patching and blockchain exfiltration.