Version 2.1.6 released August 22, 2025

    - Fix realloc() crash with newer libfuse when "--filename" is used.

Version 2.1.5 released May 22, 2025

    - Add new flag "--statsFileMirror" (issue #237)
    - Update to FUSE 3.x (#239)

Version 2.1.4 released May 10, 2025

    - Add new flag "--sharedDiskMode" (issue #236)
    - Fix use of deprecated cURL constant (pr #228)
    - Conditionalize nbdkit "block_size" callback (issue #226)
    - Skip nbd-client(8) cleanup step if it failed to start properly (#227).
    - Add new flag "--accessEC2IAM-IMDSv2" (issue #228)

Version 2.1.3 released June 12, 2024

    - Implement nbdkit "block_size" callback
    - Added configure flag "--enable-nbd" (issue #223)
    - Fix spurious "cache file is truncated" error (issue #222)
    - Fix bugs in dcache.c when USE_FALLOCATE enabled (issue #224)

Version 2.1.2 released April 23, 2024

    - Automatically recreate nbdkit socket's directory if missing (issue #219)
    - Recalculate date and authorization on retry (issue #214)

Version 2.1.1 released October 23, 2023

    - Fixed bug with bulk delete HTTP requests (issue #211)
    - Fixed empty payload bug when retrying an upload (issue #212)
    - Check for errors returned by curl_easy_setopt()
    - Added --noCurlCache flag to facilitate debugging
    - Bump wait time for nbdkit to start from 1s to 5s

Version 2.1.0 released September 23, 2023

    - Avoid sending an empty Accept-Encoding header (issue #208)
    - Use fallocate(FALLOC_FL_PUNCH_HOLE) for empty disk cache blocks (issue #200)
    - Made sync(1) work on s3backer file to flush cached data (issue #197)
    - Fixed bug where s3b_compress=deflate NDB flag would fail (issue #195)
    - Fixed bug in zero cache "current_cache_size" stats value (issue #204)
    - Reuse cURL handles after normal HTTP error codes (issue #199)
    - Run modprobe(8) if needed when starting with the --nbd flag (issue #203)
    - Use newer OpenSSL 3.0 API functions when available

Version 2.0.2 released July 17, 2022

    - Fixed bugs with the --nbd flag when not also using -f flag (issue #188)
    - Fixed free() of invalid pointer bug in zero_cache.c (issue #191)
    - Added support for zstd compression (pr #187)

Version 2.0.1 released June 4, 2022

    - Fix null pointer dereference bug in zero cache.

Version 2.0.0 released June 4, 2022

    - Support running as a Network Block Device (NBD) server (issue #178)
    - Fix slow write performance with large block sizes since 1.6.0 (issue ##185)
    - Disable MD5 cache by default now that Amazon S3 is consistent (issue #183)
    - Fix bug where "(null)" was appearing in usage message (issue #161)
    - Give more meaningful usage error when size limits are exceeded (issue #162)
    - Added flag "--http11" to restrict cURL to HTTP 1.1 (issue #168)
    - Clean up mount token if FUSE itself fails to start (issue #175)
    - Detect HTTP redirects and emit appropriate hint/warning (issue #174)
    - Added man page reference to Linux bcache (issue #169)
    - Added "--blockCacheFileAdvise" flag (pr #176)
    - Treat 3xx HTTP response codes as errors

Version 1.6.3 released October 2, 2021

    - Fixed bug with `--listBlocks' threads doing redundant overlapping queries
    - Refactor to support multiple different compression algorithms
    - Added support for bulk deletion of blocks (issue #46)
    - Fixed mutex handling bug in block cache (issue #152)
    - Release mutexs prior to destruction (issue #151)
    - Fixed use-after-free bug in XML parser (pr #154)

Version 1.6.2 released June 14, 2020

    - Require test directory to be absolute unless `-f' flag given (issue #143)
    - Show HTTP error response payload content when `--debug-http' flag given
    - List blocks in the background; added `--listBlocksThreads' (issue #24)
    - Don't let IAM credentials expire while listing blocks (issue #146)
    - Fixed bug parsing "--configFile" inside comma-separated option list

Version 1.6.1 released December 30, 2020

    - Fixed integer overflow bug setting "x-amz-meta-s3backer-filesize" (issue #141)

Version 1.6.0 released December 23, 2020

    - Added `--sse-key-id' flag (issue #137)
    - Log a more useful error message when IAM credentials not found (issue #136)
    - Warn on startup if disk space is insufficient for disk cache (issue #138)
    - Added zero block cache to better handle fstrim operations (issue #139)

Version 1.5.6 released October 30, 2020

    - Fixed phantom write error when server-side-encryption used (issue #135)
    - Allow bucket names with "subdirectory" for prefix (issue #130)
    - Added `--configFile' flag (issue #129)
    - Added `--accessKeyEnv' flag (issue #128)
    - Removed deprecated `--rrs' flag

Version 1.5.5 released August 22, 2020

    - Added `--no-vhost' flag (issue #117)
    - Added `--blockCacheNumProtected' flag (pr #119)
    - Added `--test-errors', `--test-delays', and `--test-discard'
    - Disallow stream encryption ciphers (issue #123)

Version 1.5.4 released October 8, 2019

    - Only set "x-amz-server-side-encryption" header with PUT requests (issue #116)
    - Don't kill IAM thread unless actually started (issue #115).

Version 1.5.3 released August 9, 2019

    - Fixed bug where IAM update thread was killed after fork (issue #115)
    - Fixed use-after-free bug in block_cache_verified() (issue #113)
    - Fixed use-after-free bug when updating IAM credentials (pr #114)
    - Fixed bug in test mode that was causing bogus I/O errors

Version 1.5.2 released July 9, 2019

    - Fixed bug where block cache would not work when run in the background (issue #112)
    - Fixed bug where we were not parsing HTTP headers case-insensitively (pr #11)
    - Bail out during `--listBlocks' if we see an object name past our block range
    - Added `--blockHashPrefix' flag (issue #80)

Version 1.5.1 released April 15, 2019

    - Fixed a few places where fixed-sized buffers were too small (issue #108)
    - Don't claim cache hit if partial write required reading the block (pr #103)
    - Exit process with error code if s3backer store setup fails at startup
    - Reset statistics if stats file is unlinked (issue #106)

Version 1.5.0 released June 9, 2018

    - Add support for recovering dirty blocks in the disk cache (issue #87)
    - Replaced boolean 'mounted' flag with a unique 32-bit mount token (issue #87)
    - Wait for min_write_delay before access after write error (issue #76)
    - Configure TCP keep-alive on HTTP connections (issue #78)
    - Added support for server side encryption (pull #81)

Version 1.4.4 released February 1, 2017

    - Added `--defaultContentEncoding' for non-compliant backends (issue #68)
    - Fixed auth bug when prefix contains URL-encodable char (issue #69)
    - Remove restriction preventing streaming encryption modes (issue #70)

Version 1.4.3 released July 25, 2016

    - Add support for STANDARD_IA storage class (issue #59)
    - Set "Accept-Encoding" header appropriately (issue #48)
    - Fix build issue with OpenSSL 1.1.0 (issue #64)

Version 1.4.2 released September 1, 2015

    - Update license to fix OpenSSL vs. GPL conflict
    - Remove obsolete Debian files
    - Fix typos in help output

Version 1.4.1 released May 4, 2015

    - Fix use-after-free bug configuring base URL (github issue #44)

Version 1.4.0 released April 17, 2015

    - Added support for authentication version 4 (issue #51)
    - Added support for credentials via IAM role from EC2 meta-data (issue #48)
    - Fixed bug where `--erase' did not clear the mounted flag
    - Moved from Google project hosting to GitHub
    - Fixed compile problem on FreeBSD

Version 1.3.7 (r496) released 18 July 2013

    - Add `--keyLength' for overriding generated encryption key length

Version 1.3.6 (r493) released 16 July 2013

    - Fix use of MAX_HOST_NAME in http_io.c (issue #42)
    - Fix encryption key generation bug (on some systems)

Version 1.3.5 (r485) released 29 May 2013

    - Check for duplicate mount at startup (issue #10)
    - Remove obsolete backward-compatibility block size check

Version 1.3.4 (r476) released 2 Apr 2013

    - Support FUSE fallocate() call to zero unused blocks

Version 1.3.3 (r463) released 7 Apr 2012

    - Fix bug in validation of --baseURL parameter (issue #34)
    - Accept 404 Not Found as a valid response to a DELETE (issue #35)
    - Added a fix for building on Mac OS X (issue #32)

Version 1.3.2 (r451) released 14 May 2011

    - Added `--directIO' flag to disable kernel caching of the backed file.
    - Fixed bug where the stats file was not up to date (issue #26).
    - Fixed bug with `--blockCacheMaxDirty' not working (issue #25).
    - Added automatic block cache disk file resizing (issue #23).
    - Added `--maxUploadSpeed' and `--maxDownloadSpeed' flags.
    - Added `-rrs' flag to support Reduced Redundancy Storage.
    - Fixed missing warning for `--baseURL' when missing trailing slash.

Version 1.3.1 (r413) released 19 Oct 2009

    - Added `--blockCacheMaxDirty' flag.
    - Fixed cURL handle leak when cancelling in-progress writes.
    - Updated Mac OS X build instructions and added Snow Leopard support.

Version 1.3.0 (r392) released 27 Sep 2009

    - Added support for local cache files that can persist across restarts.
    - Added built-in support for encryption and authentication.
    - In-progress writes are now cancelled when a duplicate write occurs.
    - Changed default for `--blockCacheWriteDelay' from zero to 250ms.
    - Fix obscure and unlikely deadlock bug in ec_protect.c.
    - Allow configurable compression level via --compress=LEVEL.
    - Fix bug that caused spurious "impossible expected MD5" log messages.

Version 1.2.3 (r333) released 15 May 2009

    - Added `--vhost' flag for virtual hosted style URLs in all requests.
    - Don't send LOG_DEBUG messages to syslog unless --debug flag given.
    - Fix race condition when generating HTTP Date: headers.
    - Allow command line flags to be specified in /etc/fstab.

Version 1.2.2 (r316) released 20 Dec 2008

    - Added `--compress' flag enabling compression of file blocks.
      Note: compressed blocks are not compatible with versions < 1.2.2.
    - Disable the MD5 cache when the `--readOnly' flag is given.
    - Make `--md5CacheTime=0' really mean `infinite' as promised in man page.
    - Added `--debug-http' flag for debugging HTTP headers.
    - Don't let block and MD5 caches be configured larger than necessary.
    - Fixed a few minor issues with statistics reporting.

Version 1.2.1 (r300) released 23 Oct 2008

    - Added `--erase' and `--quiet' command line flags.
    - Added `--blockCacheSync' command line flag.
    - Fixed extra copying slowdown when using large block sizes (issue #5).
    - Eliminate extra copy of blocks when written by block_cache worker threads.
    - Fixed bug in EC layer where dirty data might not be flushed at shutdown.
    - Fixed bug where 'http' was shown instead of 'https' in mount(8) output
      when the --ssl flag was given.

Version 1.2.0 (r248) released 12 Sep 2008

    - Use new custom hash table implementation; this removes glib dependency.
    - Replaced `--assumeEmpty' flag with safer and more useful `--listBlocks'.
    - Fixed bug where the zero block optimization got disabled when the
      MD5 cache was disabled.
    - Supply `-o allow_other' option by default, since default mode is 0600.
    - Fixed bug where cp(1)'ing the backed file gave `Illegal seek' error.
    - Use FUSE version 25 API so code builds on older O/S distributions.

Version 1.1.1 (r202) released 5 Aug 2008

    - Added `--ssl' as an alias for `--baseURL https://s3.amazonaws.com/'.
    - Added `--insecure' and `--cacert' flags to configure cURL SSL checks.
    - Implemented `--blockCacheWriteDelay' and `--blockCacheTimeout' flags.
    - Implemented read-ahead using `--readAhead' and `--readAheadTrigger' flags.
    - Set FUSE max_readahead option to zero by default since we do it too now.
    - Added new `--test' flag which turns on local test mode.
    - Display the URL, bucket, and prefix in the output of mount(8).
    - Fixed bug where an error during auto-detection would cause a segfault.
    - Fixed bug where read errors from the underlying store were being ignored
      by the block cache layer.

Version 1.1.0 (r150) released 26 July 2008

    - Added a block cache with parallel writes which vastly improves performance.
    - Added a new `stats' file to the filesystem containing various statistics.
    - Added `--noAutoDetect' flag to disable auto-detection at startup.
    - Fixed a few small race conditions and memory leaks.
    - Return zeroes for unwritten blocks with `assumeEmpty'.

Version 1.0.5 (r111) released 15 July 2008

    - Avoid reuse of CURL instance after receiving any HTTP error (issue #3)
    - On MacOS, prevent kernel timeouts prior to our own timeout (issue #2)
    - Replaced `--connectTimeout' and `--ioTimeout' with `--timeout' because
      CURL's I/O timeout includes in it the connection time as well.

Version 1.0.4 (r82) released 9 July 2008

    - Retry on all HTTP error codes, not just 500 or greater. Tests show that
      a valid request can return a 4xx response due to network issues.
    - Added `--fileMode' and `--readOnly' flags.
    - Added `--assumeEmpty' flag.
    - Support 'E' for 'exabytes'.
    - Port to Mac OS (issue #1)

Version 1.0.3 (r39) released 30 June 2008

    - Implement exponential backoff: replace ``--maxRetry'' and ``--retryPause''
      with ``--initialRetryPause'' and ``--maxRetryPause''.
    - Fix `--accessType' flag which was not being properly handled.
    - Improvements to the man page.

Version 1.0.2 (r25) released 20 June 2008

    - Fix bug in setting User-Agent HTTP header.
    - Fix glitch in man page.

Version 1.0.1 (r18) released 20 June 2008

    - Store filesystem size in meta-data associated with the first block and
      use it to auto-detect filesystem block and file sizes if not specified.
      As a result, `--size' flag is now optional.
    - Log a warning and zero remaining bytes when we encounter a short read.
    - Add User-Agent HTTP header to all HTTP requests.
    - Include SVN revision in version string.
    - Don't log every HTTP operation unless `-d' is passed.
    - Added `--force' flag.

Version 1.0.0 released 19 June 2008

    - Initial release
