https://github.com/duesee/imap-codec-python
https://github.com/duesee/imap-codec-python
Last synced: about 2 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 (9 months ago)
- Default Branch: main
- Last Pushed: 2024-11-13T16:59:48.000Z (7 months ago)
- Last Synced: 2024-11-13T17:43:16.151Z (7 months ago)
- Language: Python
- Size: 88.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
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, GreetingCodecbuffer = 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