One library. Every language.

Chilkat is a single class library for secure communications, data formats and cryptography — HTTP and REST, email, FTP/SFTP/SSH, Zip, PDF, encryption, digital signatures, certificates, JSON and XML, and more — with an identical API in 35+ programming languages on Windows, Linux, macOS, iOS and Android. One license covers every language and platform, and every download is the full version with a 30-day trial.

99classes in one library
35+programming languages
1license for all of them
30day fully functional trial
1998Chilkat Software founded

What's in the library

Ninety-nine classes, grouped here by what they do. Every class exists in every language with the same methods and properties; the reference documentation shows each one in the syntax of the language you choose.

🌐 HTTP, REST & Web APIs

HTTP/HTTPS with TLS 1.3, proxies, cookies, redirects and streaming; a REST class built for JSON/XML APIs; OAuth 1.0a and 2.0, AWS Signature v4, Azure and Google authentication; WebSockets and server-sent events.

HttpHttpRequestHttpResponseRestOAuth2OAuth1 AuthAwsAuthAzureStorageAuthAzureSASAuthGoogleWebSocketServerSentEvent UrlHttpCurlNtlmSpiderUploadCache

🤖 AI & LLM APIs New

Call OpenAI, Anthropic, Gemini, Azure OpenAI and other LLM APIs with one class: conversations, streaming, tool calling, structured output (JSON Schema), web search, and files. The Model Context Protocol (MCP) class connects your application to MCP servers and their tools.

AiMcpJsonObjectServerSentEvent

📧 Email

Send with SMTP, receive with POP3 and IMAP, and build or parse messages in memory: attachments, HTML and plain-text alternatives, S/MIME signing and encryption, DKIM, MHT/EML, and conversion of HTML to text.

MailManImapEmailEmailBundleMailboxesMessageSet MimeMhtDkimHtmlToTextHtmlToXml

📤 FTP, SFTP, SSH & Sockets

FTP and FTPS with directory synchronization and resume; SFTP and SCP over SSH; an SSH client for remote commands and shells; SSH tunnels and port forwarding; and a TCP/TLS socket class with client and server sides.

Ftp2SFtpSFtpDirSFtpFileSshSshKey SshTunnelScpSocketDns

📦 Zip & Compression

Create, read and update Zip archives (AES encryption, ZIP64, self-extracting EXEs, streaming), plus GZip, Bzip2, tar, Unix compress and in-memory deflate/LZMA compression.

ZipZipEntryZipCrcGzipBz2Tar CompressionUnixCompress

🔒 Encryption, Hashing & Keys

Symmetric encryption (AES, ChaCha20, 3DES, …), hashes and HMACs, Argon2 and PBKDF2, RSA, ECC and EdDSA signing and encryption, Diffie-Hellman, JWE/JWS/JWT, hardware keys through PKCS#11 and smart cards, and secure handling of secrets.

Crypt2RsaEccEdDSADsaDhPrng JweJwsJwtPkcs11SCardScMinidriverSecretsSecureString

📄 Certificates, Signatures & PDF

X.509 certificates, chains and stores; PEM, PFX/PKCS#12, JKS and CSRs; XML digital signatures (XAdES), PDF signing and verification (PAdES), Authenticode code signing, and ASN.1.

CertCertChainCertStoreTrustedRootsCsrPem PfxPrivateKeyPublicKeyJavaKeyStoreXmlCertVaultXmlDSig XmlDSigGenPdfCodeSignAsn

📋 JSON, XML & Data Handling

JSON and XML with strict or lenient parsing and path-based access, CSV, XMP metadata, character-set conversion, and the building blocks used throughout the API: strings, byte buffers, streams, files, directory trees, dates and logging.

JsonObjectJsonArrayXmlCsvXmpCharset StringBuilderStringArrayStringTableHashtableBinDataStream StreamConnectorFileAccessDirTreeCkDateTimeDtObjLog GlobalJsTaskTaskChain

The same API in every language

Each language gets a native package — a .NET assembly, an ActiveX, a C++ library, a Python module, an npm or pub.dev package, a crate — but the classes, methods, properties and behavior are the same. An example in one language reads the same in another, and moving an application to a new language does not mean learning a new library or buying a new license.

C#
// GET a JSON document over HTTPS
var http = new Chilkat.Http();
string body = http.QuickGetStr(url);
if (!http.LastMethodSuccess) {
    Console.WriteLine(http.LastErrorText);
    return;
}
var json = new Chilkat.JsonObject();
json.Load(body);
Python
# the same call, the same names
http = chilkat.CkHttp()
body = http.quickGetStr(url)
if not http.get_LastMethodSuccess():
    print(http.lastErrorText())
    exit()
json = chilkat.CkJsonObject()
json.Load(body)

Platforms

Windows (x64, x86, ARM64) Linux (x64, ARM64, ARM) Alpine Linux macOS (Apple silicon & Intel) iOS Android Raspberry Pi & embedded ARM Linux

Some packages cover a subset of these platforms; the downloads page shows the platforms available for each language.

How licensing works

Simple on purpose: try everything for 30 days, then one perpetual license unlocks the whole library in every language and on every platform.

🕑 Fully functional 30-day trial

Every download is the full version. Any string passed to UnlockBundle starts the trial — no registration, no feature limits. Trial details

🔑 One license, all languages & platforms

A Chilkat unlock code works with every language package and every operating system, now and in future versions. Move from ActiveX to .NET, or add a Python service next to a Java app, without buying again.

⏳ Perpetual & royalty-free

The license never expires and Chilkat redistributables ship with your applications at no extra cost, on any number of computers or servers. A maintenance period covers upgrades to new versions and can be renewed.

👥 Priced per developer

1-Developer, Small Group (up to 4 developers) and Team (up to 8 developers) licenses, counted by who programs with Chilkat — not by users, servers or deployments. See pricing · Licensing explained

Free classes. Thirty of the 99 classes never need a license, so JSON, XML, CSV, certificates, key files, strings and file handling can be used freely: JsonObjectJsonArrayXmlCsvCertCertChainCertStore TrustedRootsXmlCertVaultPfxPrivateKeyPublicKeyStringBuilder StringArrayStringTableHashtableBinDataStreamStreamConnector FileAccessDirTreeCkDateTimeDtObjLogGlobalUrl UploadSpiderServerSentEventSecureString The licensing requirement of each class is noted at the top of its reference page.

Get started in minutes

Download

Pick your language on the downloads page. Several languages install with a single command (pip, npm, composer, cargo, dart pub, NuGet).

Copy an example

Thousands of ready-to-run examples, each shown in every language — from a simple HTTPS GET to signing a PDF or talking to an LLM.

Read the reference

Every class, method and property documented in the syntax of your language, with notes on licensing and the version each member was introduced.

Get help

Chilkat support answers directly, and every failed call leaves a detailed LastErrorText that usually explains what happened. cknotes.com has articles and release notes.