All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.11.3 - 2026-07-17
- Add
login_with_capabilities()toLOGINand get capabilities from the response at the same time.
0.11.2 - 2026-02-10
- Expose gmail labels and msg id (#124)
crate::extensions::idle::Handle::wait()uses a 29 minute timeout instead of 24 hours- Add quotes for some commands (e.g.
COPY) to support mailbox with whitespace (#127)
0.11.1 - 2025-08-04
- Close IMAP stream after an error.
0.11.0 - 2025-07-21
- Breaking change:
read_response()returnsResult<Option<_>>instead ofOption<Result<_>>. - Add
get_ref()andget_mut()APIs to get references to underlying stream.
0.10.4 - 2025-04-07
- Remove unused
once_celldependency. - Update base64 from 0.21 to 0.22.1.
- Use write_all() to write space after a tag.
0.10.3 - 2025-03-10
- Don't panic if the server returns 0 as the quota limit. #116
0.10.2 - 2024-10-14
- Implement IMAP COMPRESS
0.10.1 - 2024-09-09
- Correctly parse unsolicited APPEND responses
0.10.0 - 2024-08-30
0.9.7 - 2023-01-30
- Fix parsing of METADATA results with NIL values. #103
0.9.6 - 2023-01-27
- Add GETMETADATA command. #102
0.9.5 - 2023-12-11
- Reset IDLE timeout when keepalive is received
0.9.4 - 2023-11-15
- Do not ignore EOF errors when reading FETCH responses. #94
0.9.3 - 2023-10-20
- Update
async-channelto version 2.
0.9.2 - 2023-10-20
- Fix STATUS command response parsing. #92
0.9.1 - 2023-08-28
- Replace byte pool with bytes to fix memory leak. #79
- Remove outdated reference to
rustls.rsexample
- Fix beta (1.73) clippy
0.9.0 - 2023-06-13
-
Switch from
ouroborostoself_cell. #86ouroborosis no longer maintained and has a RUSTSEC-2023-0042 advisory suggesting switch toself_cell.
0.8.0 - 2023-04-17
- Remove
async-native-tlsdependency. TLS streams should be created by the library users as documented inlib.rs. #68 - Do not generate artificial "broken pipe" errors when attempting to send a request after reaching EOF on the response stream. #73
- Do not attempt to track if the stream is closed or not.
ImapStreamcan wrap any kinds of streams, including streams which may become open again later, like files which can be rewinded after reaching end of file or appended to.
- Update byte-pool to 0.2.4 to fix
ensure_capacity(). Previously this bug could have resulted in an attempt to read into a buffer of zero size and erronous detection of the end of stream.
0.7.0 - 2023-04-03
- Added changelog.
- Add
IDextension support.
- Fix parsing of long responses by correctly setting the
decode_needsvariable. #74.
- Make
async-native-tlsdependency optional. - Update to
base640.21.
0.6.0 - 2022-06-27
- Add
QUOTAsupport. - Add
CONDSTOREsupport: addSession.select_condstore(). - Full tokio support.
- Do not ignore
SELECTcommand errors.
- Replace
rentalwithouroboros. - Replace
lazy_staticwithonce_cell.
0.5.0 - 2021-03-23
- Update async-std, stop-token, migrate to stable channels.
0.4.1 - 2020-10-14
- Fix response handling in authentication. #36
- Update
base64to 0.13.
0.3.3 - 2020-08-04
- Refactor buffering, fixing infinite loop. #33
- Updated
byte-poolfrom 0.2.1 to 0.2.2 due to important bugfix.
0.3.2 - 2020-06-11
- Bump
base64to 0.12.
0.3.1 - 2020-05-24
- Ignore unsolicited responses if the channel is full.
0.3.0 - 2020-05-23
- Make streams and futures
Send.
0.2.0 - 2020-01-04
- Added tracing logs for traffic.
- Correctly decode incomplete reads of long IMAP messages.
- Avoid infinite loop in decoding.
- Correct response value for manual interrupt in IDLE.
- Handle OAuth responses without challenge.
- Don't crash if we can't read the greeting from the server.
- Improved handling of unsolicited responses and errors.
- Use thiserror for error handling.
0.1.1 - 2019-11-16
- Ensure there is enough space available when encoding.