https://github.com/duesee/imap-codec-python
https://github.com/duesee/imap-codec-python
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/duesee/imap-codec-python
- Owner: duesee
- License: apache-2.0
- Created: 2024-08-21T16:34:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-03T01:03:26.000Z (10 months ago)
- Last Synced: 2025-04-05T09:30:53.958Z (9 months ago)
- Language: Python
- Size: 91.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE-APACHE
- Security: SECURITY.md
Awesome Lists containing this project
README
# imap-codec
This library provides parsing and serialization for [IMAP4rev1].
It is based on [`imap-codec`], a building block for IMAP client and server implementations written
in Rust, which implements the complete [formal syntax] of IMAP4rev1 and several IMAP extensions.
## Usage
```python
from imap_codec import Greeting, GreetingCodec
buffer = b"* OK Hello, World!\r\n"
# Decode buffer into a greeting
remaining, greeting = GreetingCodec.decode(buffer)
assert remaining == b""
assert isinstance(greeting, Greeting)
# Extract greeting data as dictionary
data = greeting.as_dict()
assert data["code"] is None
assert data["kind"] == "Ok"
assert data["text"] == "Hello, World!"
```
For more usage examples take a look at the [examples] and [tests] on GitHub.
> **Note**: Access to data of message types (e.g. `Greeting`) is currently only available through
> dictionary representations (as seen above). This is planned to be improved in future releases of
> this library.
## License
This library is dual-licensed under Apache 2.0 and MIT terms.
[IMAP4rev1]: https://tools.ietf.org/html/rfc3501
[`imap-codec`]: https://crates.io/crates/imap-codec
[formal syntax]: https://tools.ietf.org/html/rfc3501#section-9
[examples]: https://github.com/duesee/imap-codec/tree/main/bindings/imap-codec-python/examples
[tests]: https://github.com/duesee/imap-codec/tree/main/bindings/imap-codec-python/tests