https://github.com/mnlipp/jdrupes-httpcodec
Non-blocking HTTP codec without any dependencies
https://github.com/mnlipp/jdrupes-httpcodec
codec decoder encoder http java non-blocking websocket
Last synced: 11 months ago
JSON representation
Non-blocking HTTP codec without any dependencies
- Host: GitHub
- URL: https://github.com/mnlipp/jdrupes-httpcodec
- Owner: mnlipp
- License: other
- Created: 2016-12-08T15:47:55.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-05-08T18:58:14.000Z (almost 2 years ago)
- Last Synced: 2024-12-25T15:16:27.408Z (over 1 year ago)
- Topics: codec, decoder, encoder, http, java, non-blocking, websocket
- Language: Java
- Size: 10.3 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
JDrupes non-blocking HTTP Codec
===============================
[](https://github.com/mnlipp/jdrupes-httpcodec/actions)
[](https://www.codacy.com/app/mnlipp/jdrupes-httpcodec?utm_source=github.com&utm_medium=referral&utm_content=mnlipp/jdrupes-httpcodec&utm_campaign=Badge_Grade)
[](https://lima.codeclimate.com/github/mnlipp/jdrupes-httpcodec)
[](https://jitpack.io/#mnlipp/jdrupes-httpcodec)
[](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.jdrupes.httpcodec%22)
[](https://www.javadoc.io/doc/org.jdrupes.httpcodec/httpcodec)
The goal of this package is to provide easy to use HTTP
encoders and decoders for non-blocking I/O
that use Java `Buffer`s for handling the data.
I'm well aware that such libraries already exist (searching easily reveals
implementations such as the
[Apache Codecs](https://hc.apache.org/httpcomponents-core-ga/httpcore-nio/apidocs/org/apache/http/impl/nio/codecs/package-summary.html)
or the
[Netty Codes](http://netty.io/4.0/api/io/netty/handler/codec/http/package-summary.html)).
However, I found all of them to be too closely integrated with their respective
frameworks, which didn't go well with my intention to write my own
[event driven framework](http://mnlipp.github.io/jgrapes/).
An implementation that comes very close to what I needed is
[HTTP Kit](https://github.com/http-kit/http-kit), which has, however,
dependencies on Clojure, which prohibit its usage for my purpose.
This library requires Java 17 SE.
Binaries are currently made available at maven central.
```gradle
repositories {
mavenCentral()
}
dependencies {
compile 'org.jdrupes.httpcodec:httpcodec:X.Y.Z'
}
```
(See badge above for the latest version.)
The best starting point for using the library is to have a look at the Javadoc (either
[properly versioned](https://www.javadoc.io/doc/org.jdrupes.httpcodec/httpcodec/)
or [close to master](https://mnlipp.github.io/jdrupes-httpcodec/javadoc/index.html)).
Make sure to read the "Overview" section first. It provides a good overview of
the library's architecture. In addition, have a look at the source code in the
[`demo`](https://github.com/mnlipp/jdrupes-httpcodec/tree/master/demo/org/jdrupes/httpcodec/demo) folder.
Contributions and bug reports are welcome. Please provide them as
GitHub issues.