All Projects → HubSpot → Nioimapclient

HubSpot / Nioimapclient

Licence: apache-2.0
High performance, async IMAP client implementation

Programming Languages

java
68154 projects - #9 most used programming language
java8
65 projects

Projects that are alternatives of or similar to Nioimapclient

Jupiter
Jupiter是一款性能非常不错的, 轻量级的分布式服务框架
Stars: ✭ 1,372 (+4800%)
Mutual labels:  nio, netty4, netty
Naivechat
🎭 本项目是作者小傅哥使用JavaFx、Netty4.x、SpringBoot、Mysql等技术栈和偏向于DDD领域驱动设计方式,搭建的仿桌面版微信实现通信核心功能。课程文章已发布到GitChat专栏,欢迎购买。如果本项目能为您提供帮助,请给予支持(关注、⭐️Star、分享)!
Stars: ✭ 290 (+935.71%)
Mutual labels:  netty4, netty
Php Imap Client
a easy solution for simple IMAP email access in php
Stars: ✭ 254 (+807.14%)
Mutual labels:  email, imap
Simviso Source Code Interpretation Sharing
simviso 的一系列源码解读分享视频,涉及国外顶级学府课程翻译、国外顶级开发者视频翻译,JDK, Rxjava,Spring Reactor, Netty ,Reactor-Netty ,Spring Webflux 我的目标是将Java的响应式建立起一套学习体系,假如你想深入,可以参考我的视频和后续出版的书籍,同时展现一些我的编程经验,做一个铺路人
Stars: ✭ 412 (+1371.43%)
Mutual labels:  nio, netty
cheshuo
🎃A lightweight game server framework. Based on Springboot and Netty. Using ProtoBuf as communication between client and server.
Stars: ✭ 23 (-17.86%)
Mutual labels:  netty, nio
ESP-Mail-Client
⚡️Arduino Mail Client Library to send, read and get incoming mail notification for ESP32, ESP8266 and SAMD21 devices. The library also supported other Arduino devices using Clients interfaces e.g. WiFiClient, EthernetClient, and GSMClient.
Stars: ✭ 78 (+178.57%)
Mutual labels:  email, imap
Mobileimsdk
一个原创移动端IM通信层框架,轻量级、高度提炼,历经8年、久经考验。可能是市面上唯一同时支持UDP+TCP+WebSocket三种协议的同类开源框架,支持iOS、Android、Java、H5,服务端基于Netty。
Stars: ✭ 3,864 (+13700%)
Mutual labels:  nio, netty
piccolo
Netty4长连接网关
Stars: ✭ 19 (-32.14%)
Mutual labels:  netty, netty4
Cookbook
🎉🎉🎉JAVA高级架构师技术栈==任何技能通过 “刻意练习” 都可以达到融会贯通的境界,就像烹饪一样,这里有一份JAVA开发技术手册,只需要增加自己练习的次数。🏃🏃🏃
Stars: ✭ 428 (+1428.57%)
Mutual labels:  nio, netty
Happychat
基于Netty实现的WebSocket聊天室,支持几万人同时在线聊天
Stars: ✭ 445 (+1489.29%)
Mutual labels:  nio, netty
Sieve
Sieve Script Editor
Stars: ✭ 452 (+1514.29%)
Mutual labels:  email, imap
himalaya
Command-line interface for email management
Stars: ✭ 1,715 (+6025%)
Mutual labels:  email, imap
yggmail
End-to-end encrypted email for the mesh networking age
Stars: ✭ 72 (+157.14%)
Mutual labels:  email, imap
imapx
A cross-platform IMAP library for .NET, supporting .Net 2.0 - 4.5, Mono and Windows Phone
Stars: ✭ 28 (+0%)
Mutual labels:  email, imap
netty-learning
bio, nio到 netty各种使用案例, 包含基础使用案例,各api使用方法,零拷贝,websocket,群聊,私聊,编码,解码,自定义协议,protobuf等使用案例,rpc服务器,客户端等等学习
Stars: ✭ 49 (+75%)
Mutual labels:  netty, nio
Deltachat Core Rust
Delta Chat Rust Core library, used by Android/iOS/desktop apps and bindings
Stars: ✭ 300 (+971.43%)
Mutual labels:  email, imap
Imap
Object-oriented, fully tested PHP IMAP library
Stars: ✭ 678 (+2321.43%)
Mutual labels:  email, imap
attachment-downloader
Simple tool for downloading email attachments for all emails in a given folder using an IMAP client
Stars: ✭ 52 (+85.71%)
Mutual labels:  email, imap
twjitm-core
采用Netty信息加载实现长连接实时通讯系统,客户端可以值任何场景,支持实时http通讯、webSocket通讯、tcp协议通讯、和udp协议通讯、广播协议等 通过http协议,rpc协议。 采用自定义网络数据包结构, 实现自定义网络栈。
Stars: ✭ 98 (+250%)
Mutual labels:  netty, netty4
Mailkit
A cross-platform .NET library for IMAP, POP3, and SMTP.
Stars: ✭ 4,477 (+15889.29%)
Mutual labels:  email, imap

NioImapClient Build Status

High performance IMAP client in Java based on Netty

Maven Dependency

<dependency>
  <groupId>com.hubspot</groupId>
  <artifactId>NioImapClient</artifactId>
  <version>0.4</version>
</dependency>

Features

  • High performance, designed to handle many concurrent connections.
  • TLS supported out of the box
  • XOAUTH2 support
  • Support for most GMail IMAP extensions
  • Implemented RFCs
    • [ ] RFC 3501 (not all commands supported, but its easy to add new ones, PRs always welcome!)
    • [x] RFC 2595 (TLS)
    • [x] RFC 6154 (Special-Use list)

Limitations

  • Many commands are still not implemented (most command related to appending/updating messages are not implemented)
  • Pipelining of commands is not supported. It is hard to tell when the responses to these commands may be ambiguous, if you really need to execute concurrent commands we suggest simply opening multiple connections.
  • The client currently provides no facilities for tracking message sequence numbers, we rely more heavily on UIDs.
  • The server can send arbitrary untagged responses at any time, currently these get attached to the tagged response for the current command, this API needs improvement.

Future plans

(in no particular order)

  • [ ] RFC 5465 (NOTIFY)
  • [ ] RFC 2177 (IDLE)
  • [ ] RFC 2971 (ID)
  • [ ] Sequence number tracking
  • [ ] Full RFC 3501

Notes For Developers

  • NEVER execute blocking commands on an eventloop thread (i.e. CountDownLatch.await or Future.get)
    • Calls out to unknown functions (i.e. callbacks or event listeners) should always be done on isolated thread pools.
    • Slow but not necessarily blocking operations should also be avoided
  • Attempt to avoid doing long running tasks on event loop threads
  • Use new as sparingly as possible to avoid creating garbage:
    • Share objects when possible
    • Use netty bytebuf allocators when possible
    • Use netty recyclers for objects that can be recycled.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].