Skip to content

KotlinMania/http-kotlin

http-kotlin in Kotlin

GitHub link Maven Central Build status

This is a Kotlin Multiplatform line-by-line transliteration port of hyperium/http.

Original Project: This port is based on hyperium/http. All design credit and project intent belong to the upstream authors; this repository is a faithful port to Kotlin Multiplatform with no behavioural changes intended.

Porting status

This is an in-progress port. The goal is feature parity with the upstream Rust crate while providing a native Kotlin Multiplatform API. Every Kotlin file carries a // port-lint: source <path> header naming its upstream Rust counterpart so the AST-distance tool can track provenance.


Upstream README — hyperium/http

The text below is reproduced and lightly edited from https://github.com/hyperium/http. It is the upstream project's own description and remains under the upstream authors' authorship; links have been rewritten to absolute upstream URLs so they continue to resolve from this repository.

HTTP

A general purpose library of common HTTP types

CI Crates.io Documentation

More information about this crate can be found in the crate documentation.

Usage

To use http, first add this to your Cargo.toml:

[dependencies]
http = "1.0"

Next, add this to your crate:

use http::{Request, Response};

fn main() {
    // ...
}

Examples

Create an HTTP request:

use http::Request;

fn main() {
    let request = Request::builder()
      .uri("https://www.rust-lang.org/")
      .header("User-Agent", "awesome/1.0")
      .body(())
      .unwrap();
}

Create an HTTP response:

use http::{Response, StatusCode};

fn main() {
    let response = Response::builder()
      .status(StatusCode::MOVED_PERMANENTLY)
      .header("Location", "https://www.rust-lang.org/install.html")
      .body(())
      .unwrap();
}

Supported Rust Versions

This project follows the hyper's MSRV policy, though it can be lower, and is currently set to 1.57.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


About this Kotlin port

Installation

dependencies {
    implementation("io.github.kotlinmania:http-kotlin:0.1.0-SNAPSHOT")
}

Building

./gradlew build
./gradlew test

Targets

  • macOS arm64
  • Linux x64
  • Windows mingw-x64
  • iOS arm64 / simulator-arm64 (Swift export + XCFramework)
  • JS (browser + Node.js)
  • Wasm-JS (browser + Node.js)
  • Android (API 24+)

Porting guidelines

See AGENTS.md and CLAUDE.md for translator discipline, port-lint header convention, and Rust → Kotlin idiom mapping.

License

This Kotlin port is distributed under the same MIT license as the upstream hyperium/http. See LICENSE (and any sibling LICENSE-* / NOTICE files mirrored from upstream) for the full text.

Original work copyrighted by the http authors.
Kotlin port: Copyright (c) 2026 Sydney Renee and The Solace Project.

Acknowledgments

Thanks to the hyperium/http maintainers and contributors for the original Rust implementation. This port reproduces their work in Kotlin Multiplatform; bug reports about upstream design or behavior should go to the upstream repository.

About

Kotlin Multiplatform port of http

Resources

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE
Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors