bencode::data
(andbencode::basic_data
, etc) now supportoperator []
andat
member functions to get list/dictionary elements- Decoding functions now accept a pointer plus length as input
- Improve performance of
encode
; encoding is now up to 2x as fast, depending on the data being encoded
- Require C++20
- To decode only the next bencode object in a string or stream, you must now
call
bencode::decode_some
- To encode into an iterator or stream, you must now call
bencode::encode_to
bencode::decode
and friends now throw an exception if there's any data available after the bencoded object
- Fix deprecation warning when configuring
- Use
std::variant
by default (thus requiring C++17 or newer) - Allow customizing the variant type used via
bencode::basic_data
- Improve performance of
decode
; decoding is now ~2x as fast for most data (~1.5x when using views)! - When unable to decode data, throw
bencode::decode_error
with the offset where the error occurred
- Parse bencoded data iteratively to prevent stack buffer overflows
- Throw exceptions for integer over/underflow
- Require
bfg9000
v0.6 for builds/tests
- Use
std::string_view
if available - Install a
pkg-config
.pc
file that sets the compiler's include path as needed
Initial release