Unclaimed project
Are you a maintainer of fq? Claim this project to take control of your public changelog and roadmap.
Claim this projectChangelog
fq
jq for binary formats - tool, language and decoders for working with binary and text formats
Back to changelogNew
v0.13.0
Changes
- New format decoders
midi, negentropy, tap and txz, see below for details.
- Add
byte_array bits format. #992
# by default binary values are UTF-8 strings
$ fq -V -n '[1,2,3] | tobytes'
# with -o bits_format=byte_array they are byte arrays instead
"\u0001\u0002\u0003"
$ fq -cV -n -o bits_format=byte_array '[1,2,3] | tobytes'
[1,2,3]
# data is a string
$ fq '.program_headers[] | select(.type=="interp")' /bin/ls
{"align":1,"data":"/lib/ld-musl-x86_64.so.1\u0000", ...}
# data is a byte array
$ fq -cV -o bits_format=byte_array '.program_headers[] | select(.type=="interp")' /bin/ls
{"align":1,"data":[47,108,105,98,47,108,100,45,109,117,115,108,45,120,56,54,95,54,52,46,115,111,46,49,0], ...}
- Go 1.22 or later is now required to build. This is to keep up with build requirements of some dependencies. #1011
- gojq changes from upstream: #1000
- Implement
add/1 function
- Improve time functions to accept fewer element arrays
- Fix uri and urid formats not to convert a space between a plus sign
Format changes
matroska Updated to latest specification. #1010
midi MIDI decoder added by @twystd. #1004
negentropy Negentropy message decoder added by @fiatjaf. #1012
tap and txz TAP and TXZ tape format for ZX Spectrum computers added by @mrcook. #975
Changelog
- 64b05232 Add PBS tidbit 8 episode
- 3105b7d2 Added to probe group
- d73c6635 Update docker-golang to 1.22.6 from 1.22.5
- 790aa8aa Update docker-golang to 1.23.0 from 1.22.6
- ea3294f7 Update docker-golang to 1.23.1 from 1.23.0
- 34b2cc38 Update github-go-version to 1.22.6 from 1.22.5
- 8bb841f0 Update github-go-version to 1.23.0 from 1.22.6
- 2c38cf13 Update github-golangci-lint to 1.60.1 from 1.59.1
- f9dff5c6 Update github-golangci-lint to 1.60.2 from 1.60.1
- ccf78c75 Update github-golangci-lint to 1.60.3 from 1.60.2
- 23df9259 Update gomod-creasty-defaults to 1.8.0 from 1.7.0
- 9e296823 Update gomod-ergochat-readline to 0.1.3 from 0.1.2
- 01b292d8 Update gomod-golang-x-crypto to 0.26.0 from 0.25.0
- da6dd9e0 Update gomod-golang-x-net to 0.28.0 from 0.27.0
- de3fa199 Update make-golangci-lint to 1.60.1 from 1.59.1
- f6d02798 Update make-golangci-lint to 1.60.2 from 1.60.1
- e01cff01 Update make-golangci-lint to 1.60.3 from 1.60.2
- 42998836 Update make-golangci-lint to 1.61.0 from 1.60.3
- ee404b2b all: re-run the test --update
- a2417743 all: update tests for tap support
- 2c0b5289 ci: Add CGO_ENABLED=0 to make sure we dont need it
- 550bcc27 cli: Add go version to version string
- a195b3fc doc: Regenerate
- be9a9164 doc: Update formats.svg
- db0dfb14 doc: Update formats.svg
- 66345fec doc: regenerat formats.md for tzx/tap updates
- f16f6dc9 fq: Update golang.org/x/exp and github.com/gomarkdown/markdown
- 7b6d8532 go,lint: Update to go 1.22 and fix some lint warnings
- 36267873 gojq: Update fq fork
- 824e51ec gojq: Update fq fork
- fc74f685 intepr: Revert binary value each
- 3f3183a5 intepr: Support each for binary values
- 7bf11291 interp: Add bits_format=byte_array support
- 52e6e1b1 matroska: Update spec
- fdde5680 midi: (partly) fixed SMPTEOffsetEvent gap
- a1385caf midi: Decoded EndOfTrack and ProgramChange events
- 32766412 midi: Decoded KeySignature, NoteOn and Controller events
- 109719f2 midi: Decoded MIDIChannelPrefix, MIDIPort and SequencerSpecific metaevents
- cbd4a8a8 midi: Decoded NoteOff event
- 0226fc69 midi: Decoded PolyphonicPressure, ChannelPressure and PitchBend MIDI events
- b2e71a32 midi: accomodated MIDI event running status
- 0915f750 midi: added 'data' field to EndOfTrack event
- 473394b2 midi: added event type to events to simplify query by event
91fa5475 midi: added example queries to the test datace02d6ea midi: added length field to TimeSignature structb5f2bdab midi: added localised Makefile (cf. https://github.com/wader/fq/pull/1004#discussion_r1732745303)7950dd65 midi: added midi to the TestFormats all.fqtest list (cf. https://github.com/wader/fq/pull/1004#issuecomment-2314599567)80b93439 midi: added new test and MIDI files57adef46 midi: added sample queries to midi.md0e0a6694 midi: added tests for format 0, format 1 and format 2 MIDI filese99d9f69 midi: asserted bytes left for MIDI eventsd7ec38a2 midi: basic test seta41e1230 midi: cleaned up SysExContinuation and SysExEscape logica7d0cde9 midi: cleaned up and simplied event decoding logic89954962 midi: cleaned up event decoding logic0b4be892 midi: cleaned up unknown chunk logic3809ddbd midi: combined metaevent status + event bytesb433998b midi: decoded SysEx events8b236a19 midi: decoded TimeSignature meta eventf11dfafd midi: decoded TrackName meta event9099a3eb midi: decoded chunk tags as FieldUTF84fe27f51 midi: decoded remaining text metaevents1bdeeb68 midi: decoded tempo metaevent59b1faa4 midi: decorated 'delta' field with running tick4fac4c68 midi: discarded unknown chunks9dfcb962 midi: experimenting with struct metaevent data2a650366 midi: fixed fuzzing errorsf1b888bd midi: fixed gap in SequencerSpecificEvent4bb3292f midi: fixed key signature mapf424936f midi: fixed lint warning (cf. https://github.com/wader/fq/pull/1004#discussion_r1734668130)2f2070ec midi: fixed lint warnings87c80f57 midi: fixes for PR comments9f057b67 midi: fixes for PR comments9c7f7f96 midi: fixes for PR comments:ad0a06d6 midi: initial import2970fb14 midi: lowercased event names3ed98897 midi: mapped SMPTE framerates54a0cf12 midi: mapped SysEx event types34fca407 midi: mapped manufacturer IDs to strings0ef3304e midi: mapped note numbers to note names763d1420 midi: moved 'dev only' Makefile to workdir and removed it from .gitignore (cf. https://github.com/wader/fq/pull/1004#discussion_r1732745303)5c89d7d2 midi: moved MIDI running status and Casio flag to context structc5637f05 midi: partly fixed gaps in SysExMessage7fd9ad27 midi: removed debug leftovers (cf. https://github.com/wader/fq/pull/1004#discussion_r1732723519)462ae158 midi: removed superfluous AssertLeastBytesLeft (cf. https://github.com/wader/fq/pull/1004#discussion_r1734668130)17bac771 midi: removed superfluous uint64 cast (cf. https://github.com/wader/fq/pull/1004#discussion_r1740783338)dad4a916 midi: replace d.BytesLen(1) with d.U8()578b7e78 midi: restructured event decoding to decode length and struct fields (cf. https://github.com/wader/fq/pull/1004#discussion_r1737105173)befdf1fc midi: reworked SysEx events as struct with length fieldea3e0898 midi: reworked decoding to expect an MThd header as the first chunk (cf. https://github.com/wader/fq/pull/1004#discussion_r1732725275)e940f476 midi: reworked metaevent decoding for PR commentsa337ff00 midi: reworked sysex and metaevent 'struct' events to decode as byte arrayscee51ecd midi: reworked to include delta in eventa3a0a069 midi: simplifed and cleaned up MIDI 'fq' tests:c8d9397b midi: snake-cased event types and event names (cf. https://github.com/wader/fq/pull/1004#discussion_r1732733049)3966d5be midi: tightened up status/event decoding logic (cf. https://github.com/wader/fq/pull/1004#issuecomment-2334916357)2350afed midi: updated help text to use snake-case event names (cf. https://github.com/wader/fq/pull/1004#discussion_r1734659627)49bd7c27 negentropy: add format.e3c7b1a3 negentropy: another test from a different source, another doc entry, comments on source of test samples.38533871 negentropy: const modes, RFC3339 dates and synthetic timestamps.8f9a0057 negentropy: timestamp description as UTC.113ca632 tap: add DefaultInArge526cafa tap: add README to tests directory90de6199 tap: add a read_one_block teste3c3d925 tap: add author to tap.md633160bb tap: handle unoffical block types and minor improvementse5be55c1 tap: remove Probe group7816fe1c tap: remove format.TAP_In and update tzxe345528d tap: rename block_type to typed3849306 tap: revert using an array of bytesc93dc8bb tap: verify checksum values81b23041 tzx: Add suport for ZX Spectrum TZX and TAP files6ac69e25 tzx: add README to tests directory88b6ded5 tzx: add author to tzx.mdb27017cc tzx: add readme instructions for bits_format=byte_arrayfc350f3d tzx: change data fields to array of bytes for easier JSON parsingd3a5b8df tzx: revert using an array of bytesffb5eb33 tzx: use jq-ish values for the mapped symbols in block type 0x18