- Few fixes about benchmarks and tests (#51, @tbrk, @dinosaure)
- Add missing dependency about
fmt
and fix the compilation for OCaml 5.0 (#52, @kit-ty-kate)
- Fix support for
x-compilation
(@samoht, #44) - Update to
dune.2.0
and applyocamlformat
(@samoht, #45) - Select
unsafe.ml
only withdune
(@emillon, #46) - Remove indirect dependecy to
ocamlfind
(@kit-ty-kate, #49) - Hide internals of
base64
and return astring
as the alphabet (@reynir, #48) breaking chnagesBase64.alphabet
is updated and return a simplestring
now
- Fix tests about
alcotest.1.0.0
(@dinosaure, #40) - Be more strict about padding when we decode a base64 input (@dinosaure, @hannesm, @cfcs, #43)
- Remove
fmt
dependency (#43)
- Remove
build
directive on dune dependency (@CraigFe, #35) - Make error poly-variant open (@copy, #39)
- Use
unsafe_bytes_set16u
insteadunsafe_string_set16u
(@dinosaure, @hhugo, @avsm, #37)
Base64_rfc2045.decode
can now progress on many input errors, allowing clients to make forward progress by discarding a single character and trying to continue. This allows, for example, newlines and other invalid characters to be discarded. (#34 @tiash, review by @dinosaure @avsm)- Add more test cases for RFC2045 (#34 @dinosaure)
- Improve README toplevel output example (#28 @djs55)
- Add
Base64.encode_string
that doesn't raise or return an error. This makes it easier to port pre-3.0 code to the new interface (#26 @avsm)
- Implementation of Base64 according to RFC 2045 (available on base64.rfc2045)
- New implementation of Base64 according to RFC 4648 from nocrypto's implementation
- Fix bad access with
String.iter
on the old implementation of Base64 (@dinosaure, #23) - Check isomorphism between
encode
&decode
function (@hannesm, @dinosaure, #20) - Add tests from RFC 3548 and from PHP impl. (@hannesm, @dinosaure, #24)
- Add fuzzer on both implementations
- check isomorphism
- check bijection
- check if
decode
does not raise any exception
- break-api,
B64
was renamed toBase64
(@copy, @avsm, @dinosaure, #17) - break-api,
Base64.decode
andBase64.encode
returns a result type instead to raise an exception (@hannesm, @dinosaure, #21) - break-api, Add
sub
type to avoid allocation to the end-user (@avsm, @dinosaure, #24) - break-api, Add
pad
argument ondecode
function to check if input is well-padded or not (@hannesm, @dinosaure, #24) - break-api, Add
off
andlen
optional arguments onencode
&decode
functions to compute a part of input (@cfcs, @dinosaure, #24) - Better performance (see #24) (@dinosaure)
- Review of code by @cfcs (see #24)
- Add a
decode_opt
function that is a non-raising variant ofdecode
. - Reformat the code with ocamlformat (@dinosaure)
- Port build to dune from jbuilder (@dinosaure
- Switch to jbuilder (#13, @rgrinberg)
- Fix version number (#11, @hannesm)
- Switch build to
topkg
and obey theodig
conventions for installing metadata files. - Add a test suite based on RFC4648 test vectors.
- Improve Travis CI tests to be multidistro.
- Switch the top-level
Base64
module toB64
to avoid clashing with various other similarly named modules inextlib
and some other libraries. This is obviously backwards compatibility breaking with all current users of this library. (#3).
- Allow specifying a different alphabet during encoding or decoding, and supply a URI-safe alphabet along with the default Base64 standard.
- Add OCaml 4.02
safe-string
compatibility. - Optionally support encoding without padding.
- Initial public release.