You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+9-28Lines changed: 9 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,60 +1,41 @@
1
1
2
2
3
3
# imapnio
4
-
A Java library supporting NIO (Non-blocking I/O) based IMAP client.
4
+
A Java library that supports NIO (Non-blocking I/O) based IMAP clients.
5
5
6
-
IMAP NIO client provides a framework to allow access to an IMAP message store using None-blocking I/O mechanism. This design scales well for thousands of connections per machine and reduces contention when using a large number of threads and CPUs.
6
+
The IMAP NIO client provides a framework to access an IMAP message store using None-blocking I/O mechanism. This design scales well for thousands of connections per machine and reduces contention when using a large number of threads and CPUs.
7
7
8
8
9
9
## Table of Contents
10
10
11
11
-[Background](#background)
12
12
-[Install](#install)
13
-
-[Configuration](#configuration)
14
13
-[Usage](#usage)
15
14
-[Contribute](#contribute)
16
15
-[License](#license)
17
16
18
17
19
18
## Background
20
19
21
-
Traditional accessing IMAP message store uses [JavaMail API](https://www.oracle.com/technetwork/java/javamail/index.html), which requires blocking I/O where a thread is blocked when performing I/O with the other end.This project was developed to allow for relieving the waiting thread to perform other tasks. This design efficiently improves the threads utilization and allows the consuming application to maximize the hardware throughput and capacity.
20
+
The traditional accessing IMAP message store uses [JavaMail API](https://www.oracle.com/technetwork/java/javamail/index.html), which requires a blocking I/O. In this case, threads are blocked when performing I/O with the other end.This project was developed to relieve the waiting thread to perform other tasks, and it's design efficiently improves thread utilization to maximize hardware throughput and capacity.
22
21
23
-
Following is a list of distinguishing features in this project:
22
+
Some of the more distinguishing features of this library are:
24
23
- Highly customizable thread model and server/client idle max limit.
25
-
- Leverages the well-established framework - [Netty](https://netty.io/)
24
+
- Leverages the well-established framework [Netty](https://netty.io/)
26
25
- Future-based design enables a clean separation of IMAP client threads pool versus consumers threads pool.
- ID command, [RFC2971](https://tools.ietf.org/html/rfc2971) support.
29
28
- IDLE command, [RFC2177](https://tools.ietf.org/html/rfc2177) support
30
29
- MOVE command, [RFC6851](https://tools.ietf.org/html/rfc6851) support
31
30
- UNSELECT command, [RFC3691](https://tools.ietf.org/html/rfc3691) support
32
31
33
-
This project is ideal for applications that have a high requirement to optimize the threads utilization for improving its overall resource capacity. Mostly appropriate for consumers performing a great amount of sessions and communications with the IMAP server.
34
-
35
-
Following external references will establish the foundation for understanding this project:
36
-
[Netty](https://netty.io/)
37
-
[IMAP4rev1](https://tools.ietf.org/html/rfc3501)
38
-
32
+
This project is ideal for applications that have a high requirement to optimize thread utilization and improve overall resource capacity. Specifically, this is best for situations where users perform a very high level of sessions and communication with the IMAP server.
39
33
40
34
## Install
41
35
42
-
If you've never used git before, please take a moment to familiarize yourself with [what it is and how it works](https://git-scm.com/book/en/v2/Getting-Started-Git-Basics). To install this project, you'll [need to have git installed and set up](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) on your local development environment.
43
-
44
-
Install by running the following command.
45
-
46
-
```
47
-
git clone https://github.com/lafaspot/imapnio.git
48
-
```
49
-
50
-
This will create a directory called imapnio and download the contents of this repo to it.
51
-
52
-
53
-
## Configuration
54
-
This is a Java library. After downloading it, compile it using the following command.
55
-
$ mvn clean install
36
+
This is a Java library. After downloading it, compile it using `mvn clean install`
56
37
57
-
Then update your project's pom.xml file dependencies, as follows:
38
+
Then, update your project's pom.xml file dependencies, as follows:
0 commit comments