Releases: klingtnet/rosc
Better docs
This release just adds some additional context to the decoder::decode_tcp
docs and fixes some link in other doc strings. Without a release the new doc strings would not show up on https://docs.rs/rosc.
Improved Encoder API
Thanks to @Barinzaya for submitting #44 which improves the encoder API in two ways:
- It defines a new
Output
trait and a newencode_into
function that allows to encode OSC data into anything that implements theOutput
trait. TheOutput
trait got implemented ofVec<u8>
, so that the existingencode
function can leverageencode_into
under the hood. - Encoder performance improved by an order of magnitude 🚀 🐎 ! There was no regression, only speedups between 5 and 21 times. This was mainly achieved by preventing a lot of allocations (as done in the previous implementations). For more details see #44.
Apply clippy suggestions
Minor enhancements
With this release the Display
trait get's implemented for OscAddress
(08b2d4f) and a number of other address related structs now derive Clone
and Debug
traits.
Use String to store OSCAddress
We now use String
to store an OSCAddress
because it will prevent lifetime issues when the given address does not live long enough. Thanks again to @DrLuke for this fix 🎉 !
Bugfix release 🐞
Thanks to @maxnoel for fixing tests on Windows. OscTimeError
is also now a std::error::Error
which makes it a bit more handy to use.
Improved ergonomics
With this release development ergonomics improved slightly:
rosc
now returns plainResult
instead of thenom
specificIResult
(#33)- there's a new
OscAddress
type that allows validating OSC addresses only once. This change is also a performance improvement. (#32)
Special thanks to @DrLuke for implementing both changes and thus closing #29 and #30.
Address matching via `nom`
We do not depend on the regex
crate anymore since the address matching is now done entirely via nom
. Thanks to @DrLuke for implementing this! 🎉
Add address module
This release adds a new address
module that helps matching message addresses against OSC method address patterns. With other words, the Matcher
can be used to dispatch incoming messages to the appropriate handler.
Fix Osc-/SystemTime conversions for 32-bit systems
This limits SystemTime
to OscTime
conversions, and vice versa, to time ranges since the unix epoch which prevents arithmetic overflows on 32-bit systems. Times before the unix epoch can still be represented using OscTime
.