# Changelog

## 0.2.2 (2023-03-08)

* Remove leftover println debugging ([#406](https://github.com/wnfs-wg/rs-wnfs/pull/406))

## 0.2.1 (2023-02-28)

* Added `PublicFile::size` and `PrivateFile::size` functions
* Changed return type of `PrivateFile::get_size_upper_bound` to be `u64` instead of `usize`

## 0.2.0 (2024-02-15)

* Bumped minimal supported rust version to 1.75
* Moved all traits to use the new ["return position impl trait in trait" feature](https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.html)
* Evolve `BlockStore` trait ([#402](https://github.com/wnfs-wg/rs-wnfs/pull/402))
* Match the public and private APIs for content reading ([#386](https://github.com/wnfs-wg/rs-wnfs/pull/386))

## 0.1.27 (2023-12-06)

* Switched from `Rc` to `Arc` and generally enabled rs-wnfs APIs to work in multithreaded contexts ([#366](https://github.com/wnfs-wg/rs-wnfs/pull/366) and #[#372](https://github.com/wnfs-wg/rs-wnfs/pull/372))
  For any `wasm32` target, this still falls back to `Rc` via conditional compilation.
* `PublicDirectory` and `PublicFile` now support writing byte-arrays as file contents instead of just CIDs. ([#375](https://github.com/wnfs-wg/rs-wnfs/pull/375) and [#376](https://github.com/wnfs-wg/rs-wnfs/pull/376))
  This supports chunking huge files, streaming files without needing to have the file in-memory all at once and reading files at offsets.
* Refactored the API to use a `Storable` trait instead of `AsyncSerialize` ([#378](https://github.com/wnfs-wg/rs-wnfs/pull/378))
  This enables writing non-dag-cbor data, such as UnixFS files to WNFS, which powers the new file writing features.
* WNFS can now make use of a new integer math backend based on `rug`, which is based on GMP ([#373](https://github.com/wnfs-wg/rs-wnfs/pull/373))
  This backend is ~2x faster for pure nameaccumulator operations, but only available in native code, not in Wasm.

## 0.1.26 (2023-09-04)

* Added `PrivateForestContent` API for storing encrypted data in private file metadata
* Added `_rc` constructor variants
* Removed `Share` struct from the share API. We recommend using share and receive functions directly.
* Added some module documentation

## [0.1.25](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.24...wnfs-v0.1.25) (2023-08-30)


### Bug Fixes

* Fix `search_latest` on `write` and file mountpoints ([#341](https://github.com/wnfs-wg/rs-wnfs/issues/341)) ([dae79cd](https://github.com/wnfs-wg/rs-wnfs/commit/dae79cd1b95148cf54d6fdf57357b76adcf192ae))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * wnfs-nameaccumulator bumped from 0.1.24 to 0.1.25

## [0.1.24](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.23...wnfs-v0.1.24) (2023-08-17)


### Features

* Implement public directory cp & more efficient copy for `PrivateFile` ([#319](https://github.com/wnfs-wg/rs-wnfs/issues/319)) ([cebb956](https://github.com/wnfs-wg/rs-wnfs/commit/cebb956cdaf88ed6e2eb09b784eeec5d61bdf4c8))


### Bug Fixes

* Improve performance of `get_revision_name()` ([#317](https://github.com/wnfs-wg/rs-wnfs/issues/317)) ([55cf2e0](https://github.com/wnfs-wg/rs-wnfs/commit/55cf2e013cb84cbaab2086c83866f93ecadb0a88))
* More reliably cache `NameAccumulator` modexps ([#326](https://github.com/wnfs-wg/rs-wnfs/issues/326)) ([380ee8c](https://github.com/wnfs-wg/rs-wnfs/commit/380ee8c7b07a73912100c2689334596e3ad8d9c0))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * wnfs-nameaccumulator bumped from 0.1.23 to 0.1.24

## [0.1.23](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.22...wnfs-v0.1.23) (2023-07-21)


### Features

* expose AccessKey encode/decode api ([#296](https://github.com/wnfs-wg/rs-wnfs/issues/296)) ([982feff](https://github.com/wnfs-wg/rs-wnfs/commit/982feff849a3f42bb859636a68324b3c6a550a91))
* Switch from AES-GCM to XChaCha20-Poly1305 ([#305](https://github.com/wnfs-wg/rs-wnfs/issues/305)) ([c17f6bb](https://github.com/wnfs-wg/rs-wnfs/commit/c17f6bb5bc9369d94d1c57cfa66c6cc2adf8174b))
* Switch from Namefilter to Name Accumulators ([#247](https://github.com/wnfs-wg/rs-wnfs/issues/247)) ([7026a37](https://github.com/wnfs-wg/rs-wnfs/commit/7026a379443038fa1b0410df1c7d0bc23649f17a))
* Switch from SHA3-256 to BLAKE3-256 ([#306](https://github.com/wnfs-wg/rs-wnfs/issues/306)) ([e164a1f](https://github.com/wnfs-wg/rs-wnfs/commit/e164a1fc80c30d9446404a61b05fd995d7d88c0e))


### Miscellaneous Chores

* **wnfs-nameaccumulator:** Initial release at 0.1.23 ([eb17ea2](https://github.com/wnfs-wg/rs-wnfs/commit/eb17ea2fa03e248a189cb8db04a033ef542f26db))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * wnfs-common bumped from 0.1.22 to 0.1.23
    * wnfs-hamt bumped from 0.1.22 to 0.1.23
    * wnfs-nameaccumulator bumped from 0.1.22 to 0.1.23

## [0.1.22](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.21...wnfs-v0.1.22) (2023-06-23)


### Features

* make changes to BlockStore trait based on feedback ([#286](https://github.com/wnfs-wg/rs-wnfs/issues/286)) ([085242d](https://github.com/wnfs-wg/rs-wnfs/commit/085242d15aa48db17d77ed45e1c7717d13ed105f))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * wnfs-common bumped from 0.1.21 to 0.1.22
    * wnfs-hamt bumped from 0.1.21 to 0.1.22
    * wnfs-namefilter bumped from 0.1.21 to 0.1.22

## [0.1.21](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.20...wnfs-v0.1.21) (2023-05-22)


### ⚠ BREAKING CHANGES

* get_node should return null on missing path ([#253](https://github.com/wnfs-wg/rs-wnfs/issues/253))

### Features

* Add `PrivateDirectory::entires`, `PrivateFile::read_at` and make `PrivateFile::get_content_size_upper_bound` public ([#237](https://github.com/wnfs-wg/rs-wnfs/issues/237)) ([1572f43](https://github.com/wnfs-wg/rs-wnfs/commit/1572f432b6ae5366436cdefda7defd71c23b0ca7))


### Bug Fixes

* get_node should return null on missing path ([#253](https://github.com/wnfs-wg/rs-wnfs/issues/253)) ([5ed87fe](https://github.com/wnfs-wg/rs-wnfs/commit/5ed87fe6359a19abdea5f34dd0537fd5d62c98a8))
* propagate missing chunk error ([#252](https://github.com/wnfs-wg/rs-wnfs/issues/252)) ([4c16dcd](https://github.com/wnfs-wg/rs-wnfs/commit/4c16dcd4725c8b499a01184530e0e95ed8f4a9d5))


### Miscellaneous Chores

* release 0.1.21 ([#255](https://github.com/wnfs-wg/rs-wnfs/issues/255)) ([2be9f49](https://github.com/wnfs-wg/rs-wnfs/commit/2be9f4999d279acccfcda3b690d69dcbcdf8e60b))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * wnfs-common bumped from 0.1.20 to 0.1.21
    * wnfs-hamt bumped from 0.1.20 to 0.1.21
    * wnfs-namefilter bumped from 0.1.20 to 0.1.21

## [0.1.20](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.19...wnfs-v0.1.20) (2023-03-30)


### Features

* `open_file_mut` function for getting `&mut PrivateFile` references ([#218](https://github.com/wnfs-wg/rs-wnfs/issues/218)) ([f80dbb1](https://github.com/wnfs-wg/rs-wnfs/commit/f80dbb19cee471447145245b8c0285608a25ebcc))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * wnfs-common bumped from 0.1.19 to 0.1.20
    * wnfs-hamt bumped from 0.1.19 to 0.1.20
    * wnfs-namefilter bumped from 0.1.19 to 0.1.20

## [0.1.19](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.18...wnfs-v0.1.19) (2023-03-23)


### Miscellaneous Chores

* release 0.1.19 ([1f37ec4](https://github.com/wnfs-wg/rs-wnfs/commit/1f37ec4d706b9bcb4305128451cc77063b4f211d))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * wnfs-common bumped from 0.1.18 to 0.1.19
    * wnfs-hamt bumped from 0.1.18 to 0.1.19
    * wnfs-namefilter bumped from 0.1.18 to 0.1.19

## [0.1.18](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.17...wnfs-v0.1.18) (2023-03-23)


### Features

* Make log optional ([#189](https://github.com/wnfs-wg/rs-wnfs/issues/189)) ([12cd842](https://github.com/wnfs-wg/rs-wnfs/commit/12cd8428514d7c145b443a78e279dc468fa01a91))
* Redundant sha2 ([#191](https://github.com/wnfs-wg/rs-wnfs/issues/191)) ([231f4e9](https://github.com/wnfs-wg/rs-wnfs/commit/231f4e929378d7a02c9f7f8b095f1c2b1175ec2e))


### Bug Fixes

* `find_latest_share_counter` finds the last share count ([#197](https://github.com/wnfs-wg/rs-wnfs/issues/197)) ([69ffeec](https://github.com/wnfs-wg/rs-wnfs/commit/69ffeeca20cc3106e6d733e2d5adf5f87987630c))

## [0.1.17](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.16...wnfs-v0.1.17) (2023-02-24)


### Features

* **api:** add privateforest merge and diff bindings ([#181](https://github.com/wnfs-wg/rs-wnfs/issues/181)) ([231ece4](https://github.com/wnfs-wg/rs-wnfs/commit/231ece4309cab86d4682693e8e31f8ed99478a1f))
* PrivateLink abstraction ([#172](https://github.com/wnfs-wg/rs-wnfs/issues/172)) ([f04fa89](https://github.com/wnfs-wg/rs-wnfs/commit/f04fa89738e19a095d177e18b35d7e153c380833))
* Remove `base_history_on` and auto-track history instead ([#174](https://github.com/wnfs-wg/rs-wnfs/issues/174)) ([806bbb9](https://github.com/wnfs-wg/rs-wnfs/commit/806bbb93b1f03983165375005e14a9b63ebe67c2))

## [0.1.16](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.15...wnfs-v0.1.16) (2023-02-22)


### ⚠ BREAKING CHANGES

* **exports:** make re-exports more flexible ([#167](https://github.com/wnfs-wg/rs-wnfs/issues/167))

### Features

* Streaming write for PrivateFile ([#163](https://github.com/wnfs-wg/rs-wnfs/issues/163)) ([1bfe89b](https://github.com/wnfs-wg/rs-wnfs/commit/1bfe89bcaabdf679a5338a2c9aa97b76deb00b03))


### Miscellaneous Chores

* **exports:** make re-exports more flexible ([#167](https://github.com/wnfs-wg/rs-wnfs/issues/167)) ([d7870bc](https://github.com/wnfs-wg/rs-wnfs/commit/d7870bc78660458fe9c5252c551a474dcdd045f2))
* release 0.1.16 ([#178](https://github.com/wnfs-wg/rs-wnfs/issues/178)) ([89e4d36](https://github.com/wnfs-wg/rs-wnfs/commit/89e4d36dc9b27ec1ab67db6fc214670efe768f32))

## [0.1.15](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.14...wnfs-v0.1.15) (2023-02-16)


### Features

* **private:** shared private data ([#148](https://github.com/wnfs-wg/rs-wnfs/issues/148)) ([c210067](https://github.com/wnfs-wg/rs-wnfs/commit/c2100679acb1d16d98cb9a2e6aa6e9abc5a8eff2))

## [0.1.14](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.13...wnfs-v0.1.14) (2023-01-16)


### Features

* **api:** adds missing metadata functions for the private side ([#144](https://github.com/wnfs-wg/rs-wnfs/issues/144)) ([7588f69](https://github.com/wnfs-wg/rs-wnfs/commit/7588f69440bfec14b8959f6aecd35eb5f848dacc))

## [0.1.13](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.12...wnfs-v0.1.13) (2023-01-12)


### Features

* **api:** self lookup & store at construction ([#138](https://github.com/wnfs-wg/rs-wnfs/issues/138)) ([228d326](https://github.com/wnfs-wg/rs-wnfs/commit/228d326291926c7e4b593ef66ebb089ce220dacb))

## [0.1.12](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.11...wnfs-v0.1.12) (2023-01-11)


### Features

* private backpointer ([#90](https://github.com/wnfs-wg/rs-wnfs/issues/90)) ([e38d039](https://github.com/wnfs-wg/rs-wnfs/commit/e38d039d3886f8590e00c7f87a530ca207f8a713))

## [0.1.11](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.10...wnfs-v0.1.11) (2023-01-06)


### Features

* **hamt:** diff and merge implementation ([#94](https://github.com/wnfs-wg/rs-wnfs/issues/94)) ([883b3ab](https://github.com/wnfs-wg/rs-wnfs/commit/883b3ab7f9c0ec4c086e83afe7f0510c448f6bbb))

## [0.1.10](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.9...wnfs-v0.1.10) (2022-12-06)


### Miscellaneous Chores

* release 0.1.10 ([#114](https://github.com/wnfs-wg/rs-wnfs/issues/114)) ([9cbc320](https://github.com/wnfs-wg/rs-wnfs/commit/9cbc32076d80a5b7d3138ea891180c689411123f))
* rename to wnfs-wasm and actions fix *maybe* ([#116](https://github.com/wnfs-wg/rs-wnfs/issues/116)) ([9ffad56](https://github.com/wnfs-wg/rs-wnfs/commit/9ffad56e6ab402c8636b13563a5bf516fb962037))

## [0.1.10](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-v0.1.9...wnfs-v0.1.10) (2022-12-06)


### Miscellaneous Chores

* release 0.1.10 ([#114](https://github.com/wnfs-wg/rs-wnfs/issues/114)) ([9cbc320](https://github.com/wnfs-wg/rs-wnfs/commit/9cbc32076d80a5b7d3138ea891180c689411123f))
