{"id":15636557,"url":"https://github.com/djc/tokio-imap","last_synced_at":"2025-05-15T00:09:31.032Z","repository":{"id":18612773,"uuid":"84754387","full_name":"djc/tokio-imap","owner":"djc","description":"Tokio-based IMAP implementation","archived":false,"fork":false,"pushed_at":"2025-01-27T04:52:11.000Z","size":400,"stargazers_count":127,"open_issues_count":11,"forks_count":40,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-13T21:34:00.154Z","etag":null,"topics":["imap-library","rust","tokio"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["djc"],"patreon":"dochtman"}},"created_at":"2017-03-12T20:16:43.000Z","updated_at":"2025-03-09T09:02:18.000Z","dependencies_parsed_at":"2024-04-15T08:39:29.784Z","dependency_job_id":"32c149cd-e4e0-42ac-acbc-a1c0ec03fcb2","html_url":"https://github.com/djc/tokio-imap","commit_stats":{"total_commits":452,"total_committers":36,"mean_commits":"12.555555555555555","dds":0.2676991150442478,"last_synced_commit":"663db674c63e0f2830210e015aa9c9b3506c13db"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djc%2Ftokio-imap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djc%2Ftokio-imap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djc%2Ftokio-imap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djc%2Ftokio-imap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djc","download_url":"https://codeload.github.com/djc/tokio-imap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254170380,"owners_count":22026253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["imap-library","rust","tokio"],"created_at":"2024-10-03T11:05:02.431Z","updated_at":"2025-05-15T00:09:30.954Z","avatar_url":"https://github.com/djc.png","language":"Rust","funding_links":["https://github.com/sponsors/djc","https://patreon.com/dochtman"],"categories":[],"sub_categories":[],"readme":"# imap-proto and tokio-imap\n\n[![Build status](https://github.com/djc/tokio-imap/workflows/CI/badge.svg)](https://github.com/djc/tokio-imap/actions?query=workflow%3ACI)\n[![Join the chat at https://gitter.im/djc/tokio-imap](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/djc/tokio-imap?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![MIT license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE-MIT)\n[![Apache License 2.0](https://img.shields.io/badge/license-ALv2-blue.svg)](./LICENSE-APACHE)\n\nAll feedback welcome. Feel free to file bugs, requests for documentation and\nany other feedback to the [issue tracker][issues] or [tweet me][twitter].\n\ntokio-imap and imap-proto are maintained by Dirkjan Ochtman. If you depend on these\nprojects, please support the project via [GitHub Sponsors] or contact me for support.\n\n[issues]: https://github.com/djc/tokio-imap/issues\n[twitter]: https://twitter.com/djco/\n[GitHub Sponsors]: https://github.com/sponsors/djc\n\n## tokio-imap: futures-based IMAP client\n\n[![crates.io, downloads](https://img.shields.io/crates/d/tokio-imap.svg)](https://crates.io/crates/tokio-imap)\n[![crates.io, latest release](https://img.shields.io/crates/v/tokio-imap.svg)](https://crates.io/crates/tokio-imap)\n[![API docs, latest release](https://docs.rs/tokio-imap/badge.svg)](http://docs.rs/tokio-imap)\n\nNOTE: Unlike imap-proto, tokio-imap doesn't receive much maintenance. As\nan alternative we suggest to evaluate async-imap instead.\n\nA [Tokio stack-based][Tokio_stack], fully asynchronous IMAP library, with strong focus on following\nthe relevant specs, mainly [IMAP4rev1][rfc3501], but with limited support for\nthe [Conditional STORE][rfc4551] extension. The type system is used to help\nenforce correctness where possible. So far, there is only client code and lots\nof infrastructure that supposedly could be shared -- no server yet. (If you\nwant a tokio-based server, look at [IMAPServer][IMAPServer].)\n\n### Feature highlights\n\n* Fully asynchronous by using [tokio-core][tokio-core] and [tokio-io][tokio-io]\n* Uses the type system to help enforce correct operation according to spec\n* [nom][nom]-based parser (in imap-proto), so far only used for server response messages\n\n### Limitations\n\n* Alpha-level implementation -- no tests yet, limited protocol coverage\n* Server is totally unimplemented at this stage\n\n[rfc3501]: https://tools.ietf.org/html/rfc3501\n[rfc4551]: https://tools.ietf.org/html/rfc4551\n[IMAPServer]: https://github.com/Nordgedanken/IMAPServer-rs\n[docs]: https://docs.rs/tokio-imap\n[tokio-core]: https://github.com/tokio-rs/tokio-core\n[tokio-io]: https://github.com/tokio-rs/tokio-io\n[Tokio_stack]: https://tokio.rs\n[nom]: https://github.com/Geal/nom\n\n### How to get started\n\nHave a look at the [mailsync][mailsync] crate for example usage.\n\n[mailsync]: https://github.com/djc/mailsync\n\n## imap-proto: IMAP types and protocol parser\n\n[![crates.io, downloads](https://img.shields.io/crates/d/imap-proto.svg)](https://crates.io/crates/imap-proto)\n[![crates.io, latest release](https://img.shields.io/crates/v/imap-proto.svg)](https://crates.io/crates/imap-proto)\n[![API docs, latest release](https://docs.rs/imap-proto/badge.svg)](http://docs.rs/imap-proto)\n\nimap-proto is a low-level IMAP protocol support crate, using the type system to\nprovide a safe API. It was extracted from tokio-imap into a separate crate so that\ndifferent protocol implementations can share it as common infrastructure\n(as proposed by [rust-imap][rust-imap] contributors).\nThe code tries to closely follow the [IMAP4rev1 RFC][rfc3501], plus extensions.\n\nProtocol support is implemented in three parts:\n\n* Types that attempt to closely reflect specification requirements\n* A parser implementation to help consume protocol messages\n* Builder types to help produce protocol messages\n\n[rfc3501]: https://tools.ietf.org/html/rfc3501\n[tokio-imap]: https://github.com/djc/tokio-imap\n[rust-imap]: https://github.com/mattnenterprise/rust-imap\n[issues]: https://github.com/djc/imap-proto/issues\n[twitter]: https://twitter.com/djco/\n\n### Progress\n\n- [ ] Client\n    - [ ] Parser: many common server responses implemented\n    - [ ] Types: most common types implemented\n    - [ ] Message builder: most common commands implemented\n- [ ] Server\n    - [ ] Parser: not started\n    - [ ] Types: not started\n    - [ ] Message builder: not started\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjc%2Ftokio-imap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjc%2Ftokio-imap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjc%2Ftokio-imap/lists"}