What's Changed
* Treat zero byte stream as a file. by diedmon in https://github.com/miurahr/py7zr/pull/551
* feat: check `targets` argument type for read and extract method by miurahr in https://github.com/miurahr/py7zr/pull/577
* feat: Add recursive sudirectories and files extraction. by nepiskopos in https://github.com/miurahr/py7zr/pull/585
* feat: ensure unpack_7zarchive closes the archive by francoisfreitag in https://github.com/miurahr/py7zr/pull/584
* docs: Use same format for `unpack_archive` example as for `make_archive` by hoel-bagard in https://github.com/miurahr/py7zr/pull/590
* fix bug in function is_64bit() by johnking0099 in https://github.com/miurahr/py7zr/pull/580
* feat: make unpack_7zarchive raise ReadError for invalid files by francoisfreitag in https://github.com/miurahr/py7zr/pull/583
New Contributors
* diedmon made their first contribution in https://github.com/miurahr/py7zr/pull/551
* nepiskopos made their first contribution in https://github.com/miurahr/py7zr/pull/585
* francoisfreitag made their first contribution in https://github.com/miurahr/py7zr/pull/584
* hoel-bagard made their first contribution in https://github.com/miurahr/py7zr/pull/590
* johnking0099 made their first contribution in https://github.com/miurahr/py7zr/pull/580
**Full Changelog**: https://github.com/miurahr/py7zr/compare/v0.21.0...v0.21.1