nonymous 0.0.2

DNS protocol and algorithm library
Documentation
# 0.0.2 (2021-01-03)


## Breaking


- scoop(1) ([nonymous-scoop]https://crates.io/crates/nonymous-scoop) was renamed to bore(1) ([bore]https://crates.io/crates/bore)
    - you can still install nonymous-scoop if you want scoop(1), but this version will be the last
- nonymous: increased minimum Rust version from 1.37 to 1.39
- nonymous: `crate::emit` was rewritten from scratch (pull request #2)
    - for an example of how to migrate, see bore/src/main.rs
    - API is now zero-copy, `#![no_std]` compatible, and harder to misuse
    - you can pass a packet size limit to `Sink`, for UDP and similar use cases
- nonymous: `crate::NeverError` was removed (but it was only used by the old `crate::emit`)
- nonymous: `crate::emit::{Type, TypeError}` were moved to `crate::core::{Type, TypeFromStrError}`
- nonymous: `crate::emit::{Class, ClassError}` were moved to `crate::core::{Class, ClassFromStrError}`
- nonymous: `crate::emit::{Ttl, TtlError}` were moved to `crate::core::{Ttl, TtlFromStrError}`
- nonymous: `NameBuilder::label` (moved from `Name::parent`) now takes a `&[u8]` rather than a `&str`
    - for the old behaviour, pass `str` arguments through `str::as_bytes`


## Issues


- fixed bug where RecordError::Bounds display message is incomplete (issue #1)
- added code coverage checks, currently disabled by default due to [a CI problem] issue #2
- fixed bug where `nonymous::emit::Name` doesn’t accept arbitrary binary labels (issue #3)


[a CI problem]: https://twitter.com/dazabani/status/1201527372740096000


## bore


- new options: `--encode` + `--decode` + `--dump` + `--load`
- crate is now built against Rust 1.39.0 on CI (was nightly-2019-09-13)
- crate now uses the stable Tokio 0.2 API (was 0.2.0-alpha.4)


# 0.0.1 (2019-09-29)


## Breaking


- `nonymous::emit::Record::new` is now fallible, failing when the given `rdata` is too long
- `nonymous::view::ExtensionError` removes the unused `Bounds` variant
- `nonymous::view::Len` was removed
    - for the old behaviour, replace `Len::len` calls with `View::len` calls
- `nonymous::view::Record::rdata` is now infallible, returning `Malformed` as a last resort
    - for the old behaviour, rename `Record::rdata` calls to `Record::try_rdata`
- `nonymous::view::Record::rdata_offset` was removed
    - for the old behaviour, replace calls with `Record::rdata_range(x).start`
- `nonymous::view::View` adds a required `fn len`


## nonymous


- crate is now `#![forbid(unsafe_code)]`
- `crate::view` error types now have meaningful error messages
- crate moves [assert_matches] from `[dependencies]` to `[dev-dependencies]`
- crate cleans up unwrap calls outside of tests and benches
- crate cleans up FIXME sites for `as {integer}` casts


## nonymous-scoop


- crate is now `#![forbid(unsafe_code)]`
- scoop(1) now uses `Display` to report fatal errors and their causes
- crate moves [assert_matches] from `[dependencies]` to `[dev-dependencies]`
- crate bumps tokio to 0.2.0-alpha.4 explicitly
- crate cleans up unwrap calls outside of tests and benches


[assert_matches]: https://crates.io/crates/assert_matches


# 0.0.0 (2019-09-16)


## nonymous


- initial release with view and emit modules


## nonymous-scoop


- initial release with resolv.conf(5) support