An open API service indexing awesome lists of open source software.

https://github.com/mizosoft/methanol

⚗️ Lightweight HTTP extensions for Java & Kotlin
https://github.com/mizosoft/methanol

brotli cache client decompression gson http jackson jaxb multipart protobuf

Last synced: about 13 hours ago
JSON representation

⚗️ Lightweight HTTP extensions for Java & Kotlin

Awesome Lists containing this project

README

          

# Methanol

[![CI status](https://img.shields.io/github/actions/workflow/status/mizosoft/methanol/build.yml?branch=master&logo=github&style=flat-square)](https://github.com/mizosoft/methanol/actions)
[![Coverage Status](https://img.shields.io/coveralls/github/mizosoft/methanol?style=flat-square)](https://coveralls.io/github/mizosoft/methanol?branch=master)
[![Maven Central](https://img.shields.io/maven-central/v/com.github.mizosoft.methanol/methanol?style=flat-square)](https://search.maven.org/search?q=g:%22com.github.mizosoft.methanol%22%20AND%20a:%22methanol%22)
[![Javadoc](https://img.shields.io/maven-central/v/com.github.mizosoft.methanol/methanol?color=blueviolet&label=Javadoc&style=flat-square)](https://mizosoft.github.io/methanol/api/latest/)

Java enjoys a neat, built-in [HTTP client](https://openjdk.java.net/groups/net/httpclient/intro.html). However, it lacks key HTTP features like [multipart uploads](https://bugs.openjdk.org/browse/JDK-8235761), caching and response decompression.
***Methanol*** comes in to fill these gaps. The library comprises a set of lightweight, yet powerful extensions aimed at making it much easier & more productive to work with `java.net.http`.
You can say it's an `HttpClient` wrapper, but you'll see it almost seamlessly integrates with the standard API you might already know.

Methanol isn't invasive. The core library has zero runtime dependencies. However, special attention
is given to object mapping, so integration with libraries like Jackson or Gson becomes a breeze.

There's also a Kotlin DSL!

## Prerequisites (at runtime)

- Java 11 or higher

Build time prerequisites in [CONTRIBUTING](CONTRIBUTING.md).

## Installation

### Gradle

```kotlin
implementation("com.github.mizosoft.methanol:methanol:1.9.0")
```

### Maven
```xml

com.github.mizosoft.methanol
methanol
1.9.0

```

## Contributing

See [CONTRIBUTING](./CONTRIBUTING.md)

## License

[MIT](https://choosealicense.com/licenses/mit/)