/curl4j

libcurl bindings for Java

Primary LanguageJavaMIT LicenseMIT

curl4j

libcurl bindings for Java 8+

Features  •  Installation  •  Examples

Features

  • Low-level bindings to libcurl.
    • Bundled libcurl for convenience.
    • Bundled CA info for convenience.
    • Bring your own libcurl binary. Use the system libcurl, or specify your own path.
    • Support for curl_easy and curl_multi.
  • High performance, extremely low overhead
  • Provides native memory management primitives for..
    • Wrapping/reading/writing native memory.
    • Java safe, native callback function pointers.
  • Support for Linux (x64/arm64)(gnu/musl), macOS (x64/arm64), and Windows (x64)
  • Supports curl-impersonate. *requires BYO libcurl See docs.

Usage

Please refer to the official libcurl documentation for specifics on how libcurl functions work.

Please see our Examples for usage.

TODO list (unsorted)

  • Musl arm64 linux.
  • Feature parity between Windows and macOS/Linux libcurl.
  • Maven central?
  • Finish curl_easy and curl_multi bindings.
  • Windows arm64
  • 32 bit support
  • At some point we need to leave J8 behind, experiment with Java FFM API.