curl-android icon indicating copy to clipboard operation
curl-android copied to clipboard

curl tool and libcurl static library prefab for android

curl Android

curl tool and libcurl static library prefab for android.

Supports TLS, powered by BoringSSL.

Supports HTTP/2, powered by nghttp2.

Supports HTTP/3, powered by BoringSSL backend ngtcp2 and nghttp3.

By default, use system built-in CA certificate store, and use system built-in DNS.

If you only want to use curl tool, unzip apk, extract libcurl.so and rename it to curl.

Integration

Gradle:

implementation 'io.github.vvb2060.ndk:curl:8.8.0'

This library is Prefab, so you will need to enable it in your project (Android Gradle Plugin 4.1+):

android {
    ...
    buildFeatures {
        ...
        prefab = true
    }
}

Usage

ndk-build

you can use curl_static in your Android.mk. For example, if your application defines libapp.so and it uses curl_static, your Android.mk file should include the following:

include $(CLEAR_VARS)
LOCAL_MODULE           := app
LOCAL_SRC_FILES        := app.cpp
LOCAL_STATIC_LIBRARIES := curl_static
include $(BUILD_SHARED_LIBRARY)

# If you don't need your project to build with NDKs older than r21, you can omit
# this block.
ifneq ($(call ndk-major-at-least,21),true)
    $(call import-add-path,$(NDK_GRADLE_INJECTED_IMPORT_PATH))
endif

$(call import-module,prefab/curl)

CMake

you can use curl_static in your CMakeLists.txt. For example, if your application defines libapp.so and it uses curl_static, your CMakeLists.txt file should include the following:

add_library(app SHARED app.cpp)

# Add these two lines.
find_package(curl REQUIRED CONFIG)
target_link_libraries(app curl::curl_static)

Version

8.8.0

  • curl 8.8.0 with my patch
  • nghttp2 1.62.1
  • nghttp3 1.3.0
  • ngtcp2 1.5.0

8.6.0

  • curl 8.6.0
  • nghttp2 1.59.0
  • nghttp3 1.1.0
  • ngtcp2 1.2.0

8.5.0

  • curl 8.5.0
  • nghttp2 1.58.0
  • nghttp3 1.1.0
  • ngtcp2 1.1.0

8.4.0

  • curl 8.4.0
  • nghttp2 1.57.0
  • nghttp3 0.15.0
  • ngtcp2 0.19.1

8.3.0

  • curl 8.3.0 with my patch
  • nghttp2 1.56.0
  • nghttp3 0.15.0
  • ngtcp2 0.19.1

8.2.1

  • curl 8.2.1
  • nghttp2 1.55.1
  • nghttp3 0.14.0
  • ngtcp2 0.18.0

8.1.1

  • curl 8.1.1
  • nghttp2 1.53.0
  • nghttp3 0.11.0
  • ngtcp2 0.15.0

8.1.0

  • curl 8.1.0
  • nghttp2 1.53.0
  • nghttp3 0.11.0
  • ngtcp2 0.15.0

8.0.1

  • curl 8.0.1
  • nghttp2 1.52.0
  • nghttp3 0.9.0
  • ngtcp2 0.13.1

7.88.1

  • curl 7.88.1
  • nghttp2 1.52.0
  • nghttp3 0.9.0
  • ngtcp2 0.13.1

7.87.0

  • curl 7.87.0
  • nghttp2 1.51.0
  • nghttp3 0.8.0
  • ngtcp2 0.11.0

7.86.0

  • curl 7.86.0
  • nghttp2 1.50.0
  • nghttp3 0.7.1
  • ngtcp2 0.10.0

7.85.1

  • curl 7.85.0
  • nghttp2 1.49.0
  • nghttp3 0.7.0
  • ngtcp2 0.8.0

7.85.0

aar file upload failed, please use 7.85.1

  • curl 7.85.0
  • nghttp2 1.49.0
  • nghttp3 0.7.0
  • ngtcp2 0.8.0

7.84.0

  • curl 7.84.0 with my patch
  • nghttp2 1.48.0
  • nghttp3 0.5.0
  • ngtcp2 0.6.0

7.83.0-h3

  • curl 7.83.0 with my patch
  • nghttp2 1.47.0
  • nghttp3 0.4.0
  • ngtcp2 0.4.0

7.83.0-h2

  • curl 7.83.0
  • nghttp2 1.47.0

7.83.0

  • curl 7.83.0

7.75.0

  • curl 7.75.0