Releases: Cognoscan/fog-pack
0.5.0
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
0.4.1
0.4.0
- 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
, andban
for banning parts from the string - MapValidator has
same_len
andsame_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
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
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
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
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.