- Scala 2.13.0-RC2 support
- Restored JDK8 compatibility
- Fixed a bug in
sliceToByte
when the offset was non-zero (#105) - Changed the return type of
grouped
fromStream
toIterator
(#55) - Improved clarity of error message in
padLeft
/padRight
(#104) - Improved Scala 2.13 compatibility by avoiding deprecated collection types in signatures (#108)
- Fixed
BitVector.highByte
to return the correct value (scodec/scodec#108) - Fixed bug in
ByteVector#equals
which would through anIllegalArgumentException
if the vector had more thanInt.MaxValue
elements (#90)
- Added support for Scala Native
- Added support for Scala 2.13.0-M1
- Fixed
fromBase64
variants to handle malformed input better (#76)
- Fixed bug in
ByteVector.view
when passing ajava.nio.ByteBuffer
with a non-zero position - Significantly improved performance of
BitVector#reverse
and addedBitVector.reverseBitsInByte
- Added
copyToBuffer
toByteVector
- Fixed bug in
slice
onBitVector
/ByteVector
when passed negative indices - Added an extractor for
ByteVector
, allowing pattern matching on the bytes that make up a vector - Added an overload of
ByteVector.view
that allows viewing a slice of an array - Added UUID conversions for
BitVector
/ByteVector
- Improved performance of 32-bit CRCs by a factory of 10
- Added
zipWith2
andzipWith3
toByteVector
- Added
foldLeftBB
andfoldRightBB
toByteVector
, allowing zero-copy folds - Fixed stack overflow in
BitVector#hashCode
andBitVector#suspend
on very large vectors with lots of append/suspend nodes
- Changed
ByteVector
to beLong
indexed instead ofInt
indexed. - Renamed
ByteVector.view(Long => Byte, Long)
toByteVector.viewAt
.
- Fix correctness bug in
ByteVector.fromBase64
when string contained ignored characters.
- Improved performance of CRCs -- 32-bit CRCs improved by 600% and n-bit CRCs improved by 40%.
- Improved performance of
toInt
andfromInt
,toLong
andfromLong
, etc. - Further performance improvements in
toBase64
. - Improved performance of fromBase64 by over 200x
- Added type-safe === to
BitVector
andByteVector
- Significant performance improvement in
toBase64
. - Fixed source links in ScalaDoc.
- Improved performance of creating vectors from hex/bin.
- Added
deflate
andinflate
to bothBitVector
andByteVector
, which compresses the vector with ZLIB. - Added
encrypt
anddecrypt
to bothBitVector
andByteVector
. - Added
takeWhile
anddropWhile
toByteVector
. - Added 4-argument overload of
copyToArray
toByteVector
. - Added ability to encode/decode stings to/from
BitVector
s andByteVector
s.
- Added
concat
to the companions ofBitVector
andByteVector
. - Removed scala-reflect library from transitive dependencies.
- Changed organization (groupId) from
org.typelevel
toorg.scodec
.
- Significant performance improvements in
BitVector
See [#21] for details. - Added
toByte
/sliceToByte
andtoShort
/sliceToShort
toBitVector
andByteVector
- Fixed bug in
toInt
/toLong
on bit vectors with sizes not evenly divisible by 8
- Significant performance improvements in
:+
and++
forByteVector
andBitVector
. See [#16] and [#19] for details.
- Published ScalaDoc links in POM so that other projects can link to ScalaDoc
- Added toInt/toLong/fromInt/fromLong to BitVector and ByteVector
- Changed toString of empty BitVector/ByteVector
- More performant versions of ByteVector#toArray and ByteVector#toByteBuffer
- Added ByteVector#copyToArray and copyToStream
- Added
scodec.bits.crc
for calculating cyclic redundancy checks - Improved performance of
drop
- Added
digest
toBitVector
andByteVector
- Renamed
padToRight
topadLeft
and aliasedpadTo
topadRight
- Renamed
leftShift/rightShift
toshiftLeft/shiftRight
- Added
rotateLeft
androtateRight
- Added serialization support for
BitVector
andByteVector
- Added
BitVector#bytes
as alias fortoByteVector
andByteVector#bits
as alias fortoBitVector
- Improved performance of
sizeLessThan
andsizeGreaterThan
- Much more performant implementation of ByteVector by Paul C. that implements various operations in constant/log time
- General performance improvements, including stack safe versions of many methods
- Base 64 encoding/decoding
- Revamped base encoding scheme that allows pluggable alphabets (e.g., uppercase hex, truthy binary, base64 url compat)
- Many new collection like methods (e.g., headOption, init, last, lastOption, nonEmpty, padToRight, startsWith, endsWith, indexOfSlice, containsSlice, splice, patch, populationCount)
- Reduced public API footprint
- API docs
- Changed group id from com.github.scodec to org.typelevel
- Added convenience constructors to
BitVector
andByteVector
fromGenTraversableOnce
- Fixed various bugs in SliceByteVector
- Performance improvements
- Initial separation from scodec-core project
- Much more performant implementation of BitVector by Paul C. that implements various operations in constant time
- Lazy implementations of
ByteVector
by Paul C. that allow working performantly with Java IO/NIO