Git Product home page Git Product logo

tokio-imap's Introduction

imap-proto and tokio-imap

Build status MIT license Apache License 2.0 Join the chat at https://gitter.im/djc/tokio-imap

All feedback welcome. Feel free to file bugs, requests for documentation and any other feedback to the issue tracker or tweet me.

tokio-imap and imap-proto were created by and are maintained by Dirkjan Ochtman. If you are in a position to support ongoing maintenance and further development or use it in a for-profit context, please consider supporting my open source work on Patreon.

tokio-imap: futures-based IMAP client

crates.io, downloads crates.io, latest release API docs, latest release

A Tokio stack-based, fully asynchronous IMAP library, with strong focus on following the relevant specs, mainly IMAP4rev1, but with limited support for the Conditional STORE extension. The type system is used to help enforce correctness where possible. So far, there is only client code and lots of infrastructure that supposedly could be shared -- no server yet. (If you want a tokio-based server, look at IMAPServer.)

Feature highlights

  • Fully asynchronous by using tokio-core and tokio-io
  • Uses the type system to help enforce correct operation according to spec
  • nom-based parser (in imap-proto), so far only used for server response messages

Limitations

  • Alpha-level implementation -- no tests yet, limited protocol coverage
  • Server is totally unimplemented at this stage

How to get started

Have a look at the mailsync crate for example usage.

imap-proto: IMAP types and protocol parser

crates.io, downloads crates.io, latest release API docs, latest release

imap-proto is a low-level IMAP protocol support crate, using the type system to provide a safe API. It was extracted from tokio-imap into a separate crate so that different protocol implementations can share it as common infrastructure (as proposed by rust-imap contributors). The code tries to closely follow the IMAP4rev1 RFC, plus extensions.

Protocol support is implemented in three parts:

  • Types that attempt to closely reflect specification requirements
  • A parser implementation to help consume protocol messages
  • Builder types to help produce protocol messages

Progress

  • Client
    • Parser: many common server responses implemented
    • Types: most common types implemented
    • Message builder: most common commands implemented
  • Server
    • Parser: not started
    • Types: not started
    • Message builder: not started

tokio-imap's People

Contributors

djahandarie avatar djc avatar little-dude avatar mcarton avatar mordak avatar sanmai-nl avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.