Skip to content

Releases: Cognoscan/fog-pack

0.5.0

27 Aug 04:34
Compare
Choose a tag to compare

Updates to the newer fog-crypto, which features:

  • Updates from the dalek cryptography crates
  • A more convenient interface that doesn't require providing a random number generator for cryptographic operations (provided the getrandom feature is set).
  • Exposing private identity keys in a more easy-to-use way (for creating authentication tokens)

Making a BareIdKey type for transmitting private identity keys is also supported by an explicit type in fog-pack, and has been added as a validator as well. There are warnings advising that it should only be used for making authentication tokens, as it doesn't do anything to encrypt the key.

This release also has a breaking change to timestamps: they are now in TAI time since the Unix epoch, instead of allowing for some unspecified time standard set. Features for converting back and forth from UTC time, and for loading in an updated leap second table, have both been added.

0.4.2

05 Aug 00:31
Compare
Choose a tag to compare

Derive Clone & Debug on Entry and NewEntry.

0.4.1

05 Aug 00:30
Compare
Choose a tag to compare

Add a find_hashes function to quickly locate hash values within both documents and entries.

0.4.0

28 Jul 01:15
Compare
Choose a tag to compare
  • F32 & F64 validators now have a build() function, same as every other validator
  • Schemas can be checked for some maximum number of regexes before being decoded
  • StrValidator has ban_prefix, ban_suffix, ban_char, and ban for banning parts from the string
  • MapValidator has same_len and same_len_ok for forcing subarrays to all be the same length
  • MapValidator now just uses a StrValidator instead of its own KeyValidator
  • SchemaBuilder didn't expose the max_regex parameter before, now it is available for configuration
  • Validators are now Boxed within the Validator enum
  • The serializer now uses a Vec instead of a BTreeMap for putting a Map into the correct order
  • SchemaBuilder allows lookup of types that have been added to it
  • Benchmarking code got broken at some point and has been fixed
  • Various and sundry documentation fixes and clippy fixes

0.3.0

12 Jul 19:26
Compare
Choose a tag to compare

This release brings in a number of bugfixes, features, API changes, and dependency updates.

First, and foremost, the nesting depth has been doubled to 200 to accommodate tagged enums more readily. This is a major fog-pack capability change, making high-depth fog-pack objects that were invalid now OK.

First, the dependencies:

  • zstd_safe has been updated to version 6
  • fog-crypto has been updated to 0.4.3

Next, the bugfixes:

  • ValueRefs wouldn't decode any of the special fog-pack types correctly
  • Compression was doing some undefined behavior, and has been changed to use zstd_safe only

And finally, the API changes:

  • Some of the function call ordering has been changed around to harmonize across the whole API
  • EntryRef has been added, which makes it easier to refer to Entries
  • Entries require their parent document in order to be created, and store a local reference to the parent document's schema

0.2.0 - Major Redesign with Serde

21 Mar 02:34
Compare
Choose a tag to compare

This release is almost a complete rewrite of the library:

  • Serde serialization & deserialization is now the main way to interact with fog-pack
  • The format has been changed significantly. No length words are ever more than 3 bytes, all elements are little-endian
  • The new fog-crypto library is used for all cryptographic primitives
  • Validators have been tweaked to support Documents & Entries that don't contain maps as their top-level element.
  • Schema can be constructed directly from structs and a builder, instead of being created from a fog-pack Value type.

Validation Fixes

29 May 18:15
Compare
Choose a tag to compare

This fixes some errors in parsing and using Object & Multi validators. The Object in, nin, and ban fields should now work, and Multi will now correctly step through validation. Some minor documentation updates also happened for syncing the readme and the lib.rs documentation.

Initial Release

27 May 03:20
Compare
Choose a tag to compare

First real release, with support for all core primitives (Document, Entry, Schema, Query) and the supporting cryptography submodule. Much work remains, but the library is in a usable state.