Skip to content

Releases: bigeasy/packet

Packet v1.0.0-alpha.4

26 Feb 06:17
Compare
Choose a tag to compare
Packet v1.0.0-alpha.4 Pre-release
Pre-release
  • Upgrade arguable to 13.0.0-alpha.7.
  • Update LICENSE for current year.
  • Upgrade mqtt-packet to 7.1.2.
  • Upgrade programmatic to 2.0.0-alpha.12.
  • Upgrade staccato to 13.0.0-alpha.13.
  • Upgrade extant to ^2.0.0-alpha.5.
  • Remove auto test counting. Closes #619.
  • More thoughts on literals.
  • Elided the header field in MQTT. See #400. Closes #588.
  • Rewrite vivify.structure for elision. See #588.
  • Add elision test with no elision. See #588.
  • Elided packet and structure. See #588.
  • Notes on arguments to functions in language.
  • Start a design document. See #471.
  • Add outline to bottom of README.md. See #471.
  • Final make of last documentation commit. See #471.
  • Survey of remaining documentation tasks. See #471.
  • Create a fixture for elided structures. See #588.
  • JavaScript file with all the language in it. Closes #618
  • Parse or serialize conditionals. Closes #616.
  • Update to diary entry.
  • Remove unknown fixed array AST node property.
  • Remove a TODO I changed into a comment. See #616.
  • Thoughts on the order of the split conditional.
  • Tidy diary relocation info.
  • Replace old diary.
  • Going to move redux.md over diary.md.
  • Diary update.
  • Publish packet. See #400.
  • Publish packet. See #400.
  • Tidy Living README.md and into section.
  • make README.md and test.
  • MQTT connack packet. See #400.
  • Update generated tests for arity fix. See #615.
  • Spell check.
  • Include parsing in MQTT test. See #400.
  • Fix parenthesisless arrow functions. Closes #615.
  • Notes on parameterized partials, limits.
  • Complete MQTT connection packet. See #400.
  • Fix $$ stack counting in serialize packed.
  • Fix sip test, MQTT connect username. See #400.
  • MQTT to version 3.1.1, basic connect packet. See #400.
  • Fix inlines around single bit packed field. Closes #612.
  • Packed field inlines language as it exists. See #612.
  • Wrap const declaration in a block. Closes #611.
  • Remove debugging messages. See #606. See #610.
  • Remove partials checks from language.js. Closes #610.
  • Start of variable header, use partials. See #400.
  • send debugging output to standard error. See #610.
  • Run includes prior to interpretation. See #610.
  • Start of MQTT protocol. See #400.
  • Fix 'undefined' absent field name in switch. Closes #609.
  • Allow nested sips in conditional length encodings. Closes #606.
  • Restore missing array tests. See #606.
  • Transforms for variable length fields in sizeof. Closes #601.
  • Suppose I could have commented it before too. See #601.
  • Revert "Revert "Checking in broken sizeof test.""
  • Add inlined code to sizeof. See #601.
  • No inlines on sizeof if fixed length. See #601.
  • Notes on byte by byte encoded integers. See #604.
  • More thoughts on sizeof. See #601.
  • Transforms now defined by the field presence. See #601.
  • Revert "Checking in broken sizeof test." See #601.
  • Notes on offsetof. See #498.
  • Notes on sizeof. See #601.
  • Checking in broken sizeof test. See #601.
  • Upgrade arguable to 13.0.0-alpha.6.
  • Upgrade programmatic to 2.0.0-alpha.11.
  • Upgrade staccato to 13.0.0-alpha.12.
  • Upgrade extant to ^2.0.0-alpha.4.
  • Correctly serializes zero length arrays. Closes #590.
  • Pull parameters into Edify. See #471.
  • Example of an accumulator. See #471.
  • Include partials example. See #471.
  • Switch example. See #471.
  • Example of conditional. See #471.
  • Example of doubles. See #471.
  • Revert lookup argument to sync generators. See #471.
  • Specify lookup in packetizer.js. See #471.
  • Need to normalize the $lookup injection. See #471.
  • Remove unused assert require. See #471.
  • Multi-byte terminator example. See #471.
  • Terminated array example. See #471.
  • Build parameter reuse example. See #471.
  • Fixed arguments to functions. See #471.
  • Named assertion parameters. See #471.
  • Different file names for assertion tests. See #471.
  • Example of assertions the hard way. See #471.
  • Example of assertion. See #471.
  • Bring in assertion documentation. See #471.
  • Sketch of require documentation. See #471.
  • Spell check. See #471.
  • Verbiage for calculated arrays. See #471.
  • Working fixed and cacluated array examples. See #471.
  • Documentation for inline functions. See #471.
  • Interface section should come soon.
  • Draft of length-encoded arrays. See #471.
  • Edify documentation for constants. See #471.
  • Add newly generated literal tests. See #471.
  • Remove an early exit from literals tests. See #471.
  • Document packed integeres. See #471.
  • make Edified generated readme.t.js. See #471.
  • Document nested structures. See #471.
  • Upgrade arguable to 13.0.0-alpha.5.
  • Upgrade staccato to 13.0.0-alpha.11.
  • Upgrade extant to ^2.0.0-alpha.3.
  • Document BitInt little-endian integers. See #471.
  • Document endianess. See #471.
  • Start to convert draft of new readme to Edify. See #471.
  • Sketch of README.md language example test. See #471.
  • Synchornous parser. Closes #264. Closes #596.
  • Unit test for generator progam. See #597.
  • Sketch of Edify based documentation. See #471.
  • Implement a synchornous interface. Closes #595.
  • The serialzer we created is really sync. Closes #595.
  • Separate mqtt test generation targets.
  • Debug GitHub Actions.
  • Upgrade arguable to 13.0.0-alpha.4.
  • Upgrade staccato to 13.0.0-alpha.10.
  • Upgrade extant to ^2.0.0-alpha.2.
  • Upgrade arguable to 13.0.0-alpha.3.
  • Upgrade programmatic to 2.0.0-alpha.10.
  • Build with Node.js 16 on GitHub Actions.
  • Upgrade staccato to 13.0.0-alpha.9.
  • Slight edit to README.md.
  • Sketch of interfaces. See #404. See #595.
  • Build with Node.js 16 on Travis CI.
  • Pick at MQTT. Reorient. See #400.

Closes #620.

Packet v1.0.0-alpha.3

22 Mar 16:36
Compare
Choose a tag to compare
Packet v1.0.0-alpha.3 Pre-release
Pre-release
  • Add /notes to .npmignore.

Closes #594.

Packet v1.0.0-alpha.2

22 Mar 15:36
Compare
Choose a tag to compare
Packet v1.0.0-alpha.2 Pre-release
Pre-release
  • Add /benchmark to .npmignore.

Closes #593.

Packet v1.0.0-alpha.1

22 Mar 15:33
Compare
Choose a tag to compare
Packet v1.0.0-alpha.1 Pre-release
Pre-release
  • Add /generated to .npmignore.

Closes #592.

Packet v1.0.0-alpha.0

22 Mar 15:32
Compare
Choose a tag to compare
Packet v1.0.0-alpha.0 Pre-release
Pre-release
  • Upgrade extant to ^2.0.0-alpha.0.
  • Upgrade programmatic to 2.0.0-alpha.9.
  • Caret pin Proof.
  • Update LICENSE for 2021.
  • Build with Node.js 12, 14 and 15 on CI/CD.
  • Add .npmignore.
  • Implement inferred spread integers. Closes #589.
  • Parse packed byte of MQTT header. See #400.
  • Documentation for references to partials. See #471.
  • Generate new Locket parsers.
  • The $i is not neccesary for buffer parse. Closes #587.
  • The $i is not necessary for buffer serialize. Closes #586.
  • Generate tests for a Locket key parser.
  • Allow inlines around packed fields. Closes #566.
  • Implement conditional length encodings. Closes #570.
  • Implement spread and conditional length encodings. Closes #569. See #570.
  • Update unit tests broken by unvivified literals. See #585.
  • Implement unvivified literals. Closes #585.
  • Documentation of integers.
  • Add a variable for unpacked two's compliment.
  • No $_ register or $bite if not used.
  • Restore commented out length-encoded unit tests.
  • Lookups for packed integer fields. Closes #576.
  • Add some space between read and two's compliment.
  • Add space between parse switch and return.
  • Remove extra space after integer serialization.
  • Unsigned right shift fixup only for 32-bits.
  • Set step on early return. Closes #578.
  • Set step on early return of incremental serialize. See #578.
  • Set step on return form serialize integer. See #578.
  • Return short-circuited unit tests.
  • Do not set step on serialize absent. See #578.
  • Remove unneeded vivify step from length encoded. Closes #562.
  • Fix best-foot-forward step for terminated arrays. Closes #582.
  • Remove object-based switch. Closes #581.
  • Use array for multiple switch values and default. Closes #580.
  • Pass parameter value from best-foot-forward. Closes #564.
  • Generate module as an object literal. Closes #575.
  • Implement nested sips. Closes #568.
  • Implement best-foot-forward parse of nested sips. See #568.
  • Incremental parse of nested sips. See #568.
  • Regenerate tests for single byte reads. See #577.
  • Use bitwise operations in whole parse integers. Closes #577.
  • Remove unnecessary parens from generated code. Closes #574.
  • Set top bits of spread integers. Closes #572.
  • Remove unused require.
  • Functions to decide when to unroll integer loops. Closes #573.
  • Use test generator with packed integers. See #563.
  • Uncomment out unit tests remove for debugging.
  • Reimplemnet explicit bigint. Closes #560.
  • Remove islolated integer language test.
  • Move integer shift definition into AST. See #571. See #572.
  • Heterogeneous spread integers, top bits. See #571. See #572.
  • Clear out ambiguities with subsequent sips. See #568.
  • Implement spread integers. Closes #567.
  • Use shift to define parse integer. See #567.
  • Tidy integer cycle test.
  • Lookups are now shared across parsers. See #521.
  • Remove underbar from reimplemented function. Closes #563.
  • Rename inline_.js to inline.js. See #563.
  • User function generation all in a single object. See #563.
  • Move inliner into common inline manager. See #563.
  • Corral all function generation into two functions. See #563.
  • Make inliner more functiony. See #563.
  • Fix name overload in inliner. See #563.
  • Fixed named parameters. See #563.
  • Create separate test function. See #563.
  • Only invoke accumulators as necessary in packed. See #563.
  • Use common inliner in sizeof.js. See #563.
  • Create common inliner object. See #563.
  • Move packing logic into single function. See #563.
  • Tidy buffered declarations. Closes #552.
  • Test inline around a variable length structure. Closes #497.
  • Remove unused vivify step from fixed, terminated. Closes #516.
  • Order all the functions named for fields by field.
  • Replace blocks of similar code with interpolation.
  • Use consistent variable for length in parsing.
  • Increment lengths index for calculated length.
  • Remove unnceccessary remaining length calculation.
  • Implement serializer and parser parameters. Closes #491. Closes #493.
  • Won't do calculated terminators. Closes #490.
  • Literals, inlines, snippets for encoded lengths. Closes #489.
  • Whole serializers do not take end, return cursor. Closes #486.
  • Constantly use map helper function. Closes #485.
  • Add little-endian ability to literals. Closes #477.
  • Implement includes. Closes #473.
  • Implement calculated length encodings. Closes #554.
  • Calculated unpadded buffers. See #544.
  • Restore commented out (early return) tests. See #544.
  • Reorganize generated fixed array test. See #544.
  • Implement calculated nested arrays. See #544.
  • Un-nest checkpoints function in parse.all.js. Closes #559.
  • Fix tests broken by calculated lengths. See #544.
  • Calcuated length arrays with padding. See #554.
  • Fix length encoded length tracking in checkpoints. Closes #520. Closes #557.
  • Benchmark to check cost of cases.
  • Add nudge field to length-encoded and fixed tests. Closes #558.
  • Restore commented out unit tests. See #510.
  • Common copy for fixed and terminated buffers. Closes #553.
  • Remove old crufty Programmatic indent hack. Closes #556.
  • Remove terminated rewind debug printing. See #510.
  • Add generated code to test coverage. Closes #555.
  • Implement terminated rewind. Closes #510.
  • Implement terminated buffers. Closes #508. Closes #509.
  • Implement common lookup constants. Closes #447. Closes #475. Closes #521. Closes #548.
  • Rename conditional parameter to field.
  • Move split to condition note of AST. Closes #549.
  • Arguments parser builds own vargs. Closes #551.
  • Exclude language specific inlines from NYC.
  • Organize switch generation into two functions.
  • Fix formatting of literal.t.js. Closes #550.
  • Rename simplified.t.js to language.t.js.
  • Tidy language parser.
  • Tidy for a major cleanup of simplified.js.
  • Add $ to parse and serialize function names. Closes #515.
  • Require generator was not returning null. Closes #505.
  • Reorgainzed conditional generated tests for pack. See #545.
  • Implement named parameters in packed conditionals. Closes #544. Closes #545.
  • Fix switch generated test organization. Closes #547.
  • Remove snuggle.js. Closes #541.
  • Cleanup generated tests.
  • Use Programmatic snuggle or packed switch. See #542.
  • Buffered functions before switch. Closes #523. Closes #542.
  • Implement revised variant switch. Closes #543.
  • Upgrade programmatic to 2.0.0-alpha.8. Closes #539.
  • Upgrade proof to 9.0.2. Closes #540.
  • Implement named arguments to arrays. Closes #495.
  • Remove functions from conditionals. Closes #538.
  • Remove default value to incremental parser object. Closes #522.
  • Implement doubles using new Buffer type. Closes #512.
  • Vivify switch conditions. Closes #534.
  • Uncomment commented out unit tests. See #524.
  • Vivify conditionals. Closes #524.
  • Inkling of limits based on packet values.
  • Vivify using vivification type. Closes #533.
  • Further notes on double jumping. See #535.
  • Add an initial field to array test. Closes #536.
  • Remove stray stopAts from unit tests. Closes #537.
  • Further notes on terminal parse double jump. See #535.
  • Notes on the terminal in conditional double jump. Seee #535.
  • Splice buffer on incremental fixed array parse. Closes #532.
  • Merge skip.t.js into literal.t.js. Closes #525.
  • Fix Docco breakage due to division in strings. Closes #530.
  • Generate a checkpoint at every field for testing. Closes #531.
  • Implement rewinding sips. Closes #528.
  • Remove unused endian test, rename integer test. Closes #527.
  • Thought on running sips. See #528.
  • Implement absent fields. Closes #529.
  • Resolve conditional/switch amgiguity. Closes #526.
  • Describe three element conditional ambiguity. See #526.
  • Use copy for length-encoded Buffers. Closes #507. Closes #518.
  • Serialize and parse fixed byte arrays as buffers. Closes #517. Closes #513. Closes #506.
  • Looping over arrays to looping over buffers.
  • Benchmark indexOf. It is faster than a loop. See #513.
  • Implement fixed size for fixed elements. Closes #519.
  • Tighened of incremenal parse of fixed arrays. See #506. See #517.
  • Remove old padded test. See #514.
  • Merge padded test into fixed test. Closes #514.
  • Restore commented out accumulator test. See #501.
  • Remove ethereal property from language. Closes #487.
  • Implement Buffer based arrays. Closes #511.
  • Wrote some words about accumulators. See #471.
  • Notes on Buffer based inlines. See #499.
  • Assert that we're staying out of hashtable mode. Closes #363.
  • Implement accumulators. Closes #376.
  • Use buffer slices in cycle tests. Closes #504.
  • Remove fixed array assert. Closes #492.
  • Call conditional functions with named arguments. Closes #496.
  • Create an object to track accumulation. See #376.
  • Notes on API. See #404. See #405.
  • Implement assertions. Closes #476.
  • Differentiate inlines and buffer accumulation. See #376.
  • Notes on accumulators. See #376.
  • Implement function accumulator constructors. Closes #503. See #376.
  • Implement regex accumulators. Closes #502. See #376.
  • Fix broken accumulator language test. See #501. See #376.
  • Implement object accumulators. Closes #501. See #376.
  • Recursive determination of vivify type. Closes #494.
  • Sketch of accumulators in language.md. See #377.
  • Implement user specified require of modules. Closes #375.
  • Implmenet named function arguments. Closes #470.
  • Implement mirrored inlines. Closes #484.
  • Move generated inline tests to inline directory. Closes #483. See #470.
  • Removed trim too soon. Closes #482. See #470.
  • Remove unused functions from interpreter. See #470.
  • Require three arguments to define inline. Closes #481. See #470.
  • Resolve conditionals and inlines ambiguity. Closes #480.
  • Notes conditional/inline ambiguity. See #480.
  • Remove dead labeled statement. Closes #479.
  • Updat...
Read more

Packet 0.0.6

04 Jul 17:49
Compare
Choose a tag to compare

Never too early to learn how to punch cards
Never too early to learn how to punch cards. by Marcin Wichary, Code for America Fellow. Tracker

Installing Packet 0.0.6

npm install packet

Create Packet Inspectors with offsetsOf

Now, in addition to paring binary data into JSON and serializing JSON data into binary, Packet will also show you it's work, generating a report on which parts of a binary pattern matched which regions in a binary stream. This is the new offsetsOf function. With it, you can create a binary inspection program.

Coverage with Istanbul and Coveralls

Packet's test coverage is now verified with Istanbul. The detailed LCOV reports can be found on the GitHub Pages side for Packet.

Also, with the help of cnainus/node-coveralls, tests are run during Travis CI builds and published at Coveralls.

Development Diary

Packet now has a development diary where I record my half-backed thoughts.

Issue By Issue

  • Implement Serializer.offsetsOf. #87. #85. #86. #63.
  • Objects primary, positional arguments secondary. #84.
  • Reset namedness of Parser. #83.
  • Serialize and parsed a named length encoded array. #82.
  • Increase test coverage. #77. #69. #68. #67. #66.
  • Test text to float conversion. #66.
  • Remove n syntax from README. @jryans. #64.
  • Remove detection of n synonym for b.
  • Remove asterisk to indicate wildcard condition. #33.
  • Parser.parse returns bytes read. #60.
  • Report coverage to Coveralls. #61.
  • Rename pattern to field. #57.
  • Massive tidy after change in enclosed objects.

Contributors

Thank you to @jryans for keeping the documentation up to date with the implementation in #64.

Next Steps / Packet 0.0.7

First time using GitHub Releases. Is it imprudent to talk about one's grand plans for the next release so soon? Probably. Here it goes.

Packet 0.0.7 will first achieve 100% test coverage. Then both parse and write it will be refactored into a composed strategy pattern using pre-compiled best-foot-forward packet parsers that fall back to a composition general purpose parsing functions.

It will be hard to write a parser or serializer that's faster than the pre-compiled once generated by Packet, and certainly more tedious to maintain.