Repository navigation
Getting Started
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.
- AutoHotkey v2.1-alpha.9 or later
- Aris or a manual DLL setup
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/LibQurlThat's it. DLLs are resolved automatically. No manual path configuration needed.
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")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 selectedIf libcurl was built without SSL support, selectedSSLprovider will contain a diagnostic message instead of a backend name.
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.
- Download Modes — Memory, File, and Magic in detail
- Setting and Listing Options — the full option API
- POST and Upload — sending data
- Terminology and Conventions — naming, handle model, and other conventions
Foundations
Operations
- Download Modes
- Setting and Listing Options
- Setting and Inspecting Headers
- POST and Upload
- Multiple Easy Handles
- Async and Multi Interface
- URL Construction
- Share Interface
- MIME and Multipart
- Raw Send and Receive
- Pause and Resume
- WebSocket
- SSL Sessions
- Debug and Diagnostics
API Reference
- Easy Handle Reference
- Multi Handle Reference
- Share Handle Reference
- MIME Handle Reference
- URL Handle Reference
- Utility Methods Reference
- WebSocket Reference
Code Snippets