Skip to content

Getting Started

Qriist edited this page Sep 17, 2026 · 3 revisions

Note: LibQurl exposes the full libcurl option set, including FTP, SFTP, SMTP, POP3, IMAP, and custom protocols. While the examples in this wiki focus on HTTP/HTTPS for sake of simple familiarity, you're able to use LibQurl in virtually any network-related AHKv2 project.

Prerequisites

  • AutoHotkey v2.1-alpha.9 or later
  • Aris or a manual DLL setup

Installation

Aris (Recommended)

Aris handles the library and its DLL dependencies in one step, provided you open a cmd window from your project's root directory:

Aris i Qriist/LibQurl

That's it. DLLs are resolved automatically. No manual path configuration needed.

Manual

If you're not using Aris, place the provided libcurl binaries (or your own copy of libcurl.dll) somewhere on your system, then pass the path to LibQurl():

#Include <LibQurl>
curl := LibQurl("C:\path\to\libcurl.dll")

SSL Backend Selection

LibQurl() accepts an optional preferred SSL backend as its second parameter. The default is WolfSSL.

If the requested backend is not available in your libcurl build, LibQurl walks a fallback chain:

WolfSSL → LibreSSL (OpenSSL) → Schannel → mbedTLS → GnuTLS → curl's compiled default

The actual selection is verified by parsing the active SSL string from curl_version_info. You can inspect both at any time:

curl := LibQurl(, "OpenSSL")
MsgBox curl.availableSSLproviders   ; what's compiled into this libcurl build
MsgBox curl.selectedSSLprovider     ; what actually got selected

If libcurl was built without SSL support, selectedSSLprovider will contain a diagnostic message instead of a backend name.

Your First Transfer

The four-line happy path is on the Home page. This is all you need for a basic GET:

curl := LibQurl()
curl.SetOpt("URL", "https://httpbin.org/get")
curl.Sync()
body := curl.GetLastBody()

No explicit handle creation, no callback setup, no write-target configuration. The default easy handle is established by LibQurl(). The default download mode is Magic (in-memory up to 50 MB, then disk). Compressed transfers are enabled.

Where to Go Next

Clone this wiki locally