{"id":14990045,"url":"https://github.com/tls-inspector/curl-ios","last_synced_at":"2025-07-03T03:05:21.097Z","repository":{"id":110575383,"uuid":"96635314","full_name":"tls-inspector/curl-ios","owner":"tls-inspector","description":"Curl framework for iOS/iPad OS apps","archived":false,"fork":false,"pushed_at":"2025-05-01T02:41:40.000Z","size":88,"stargazers_count":16,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-01T03:32:16.395Z","etag":null,"topics":["curl","ios","libcurl","libcurl-ios","library","objective-c","swift"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tls-inspector.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-07-08T17:56:36.000Z","updated_at":"2025-05-01T02:41:44.000Z","dependencies_parsed_at":"2023-10-12T00:44:57.294Z","dependency_job_id":"ef5688a1-77ea-4bf7-9082-2171d4c889cd","html_url":"https://github.com/tls-inspector/curl-ios","commit_stats":{"total_commits":37,"total_committers":3,"mean_commits":"12.333333333333334","dds":0.08108108108108103,"last_synced_commit":"2658858ea223c0df203bf0250d03c39699e23263"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/tls-inspector/curl-ios","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tls-inspector%2Fcurl-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tls-inspector%2Fcurl-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tls-inspector%2Fcurl-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tls-inspector%2Fcurl-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tls-inspector","download_url":"https://codeload.github.com/tls-inspector/curl-ios/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tls-inspector%2Fcurl-ios/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263250604,"owners_count":23437288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["curl","ios","libcurl","libcurl-ios","library","objective-c","swift"],"created_at":"2024-09-24T14:19:22.769Z","updated_at":"2025-07-03T03:05:21.076Z","avatar_url":"https://github.com/tls-inspector.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# curl-ios\n\nPre-compiled libcurl framework for iOS and iPadOS applications! Automatically updated within\n24-hours of a new release of curl.\n\nThis copy of curl is built to use [OpenSSL](https://github.com/tls-inspector/openssl-ios), which\nuses the root certificates from [rootca](https://github.com/tls-inspector/rootca).\n\n## Using the pre-compiled framework\n\n1. Download and extract the xcframework.zip from the latest release.\n   \n   If you are planning on using Curl in Swift, use `curl_swift.xcframework.zip`, otherwise use `curl.xcframework.zip`.\n\n1. _(Optional but recommended)_ download the [signing key](signingkey.pem) and the .sig file for your downloaded zip from the release and verify the signature using OpenSSL\n    ```bash\n    openssl dgst -sha256 -verify signingkey.pem -signature curl.xcframework.zip.sig curl.xcframework.zip\n    ```\n\n1. Select your target in Xcode and click the \"+\" under Frameworks, Libraries, and Embedded Content  \n    ![Screenshot of the Frameworks, Libraries, and Embedded Content section in Xcode with the plus button circled](.github/frameworks.png)\n1. Click \"Add Other\" then \"Add Files...\"  \n    ![Screenshot of a dropdown menu with the add files option highlighted](.github/addfiles.png)\n1. Select the extracted `curl.xcframework` directory.\n\n   Note that Xcode will reference the directory _in-place_, so make sure you've moved it somewhere suitable (outside your downloads directory!).\n\n1. Use curl in your code!\n\n   **Swift**:\n   ```swift\n   import Curl\n   import Foundation\n\n   let curlVersion: String = LIBCURL_VERSION\n   ```\n\n   **Objective-C**:\n   ```objc\n   #import \u003ccurl/curl.h\u003e\n   #import \"YourAwesomeClass.h\"\n\n   @implementation YourAwesomeClass\n\n   + (NSString *) curlVersion {\n      return @LIBCURL_VERSION;\n   }\n\n   @end\n   ```\n\n## Compile it yourself\n\nUse the included build script to compile a specific version or customize the configuration options.\n\n```\n./build-ios.sh [-c \u003ccurl version\u003e] [-o \u003copenssl version\u003e] [-r \u003crootca version\u003e] [-n \u003crootca bundle name\u003e] [-vsg] [-- build args]\n\nOptions are:\n\n-c \u003ccurl version\u003e\n   Specify the version of curl to compile. If not specified, will query the curl github repo and use\n   the latest release. If not specified then the 'jq' utility must be installed.\n\n-o \u003copenssl version\u003e\n   Specify the version of the openssl-ios package to download and use. If not specified, will query\n   the tls-inspector/openssl-ios repo and use the latest release. If not specified then the 'jq'\n   utility must be installed.\n\n-o \u003crootca version\u003e\n   Specify the version of the root ca bundle to download and use. If not specified, will query\n   the tls-inspector/rootca repo and use the latest release. If not specified then the 'jq'\n   utility must be installed.\n\n-n \u003crootca bundle name\u003e\n   Specify the name of the root ca bundle to download and use. Defaults to 'apple'. Valid options\n   are 'apple', 'google', 'microsoft', 'mozilla', and 'tlsinspector'.\n\n-v\n   Verify signatures of downloaded artifacts\n\n-s\n   Include a Swift module map and shim files. Do not use this if you plan to use this framework in\n   an Objective-C project.\n\n-g\n   Use the 'gh' command line tool instead of curl for GitHub API queries. This is useful for when\n   running this script in a Github action.\n\n-- build args\n   Any arguments after -- are passed directly to the ./configure step of compiling curl. Regardless\n   of this value these parameters are always provided:\n   --disable-shared --enable-static --with-openssl --without-libpsl\n```\n\n## Using Curl in Swift\n\nThis package provides support for using Curl in swift. When compiling this package you must pass `-s`.\nThis will create a .xcframework file that includes a modulemap so you can simply use `import Curl` in any Swift file.\n\n### Swift Shim\n\nThis library includes a shim header to work-around some incompatibilities with curl and Swift's C interoperability. Curl\nuses C macro functions that accept variables of any type and Swift does not support this.\n\nWhen using `curl_easy_setopt` in Swift, you will need to use one of the provided shim functions specific to the\ndatatype, such as `curl_easy_setopt_string`.\n\n## Export Compliance\n\nThis script includes OpenSSL and other cryptographic code.\n\nPlease remember that export/import and/or use of strong cryptography software, providing\ncryptography hooks, or even just communicating technical details about cryptography\nsoftware is illegal in some parts of the world. By using this script, or importing the\nresulting compiled framework in your country, re-distribute it from there or even just\nemail technical suggestions or even source patches to the authors or other people you are\nstrongly advised to pay close attention to any laws or regulations which apply to you.\nThe authors of this script, Curl, and OpenSSL are not liable for any violations you make here.\nSo be careful, it is your responsibility. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftls-inspector%2Fcurl-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftls-inspector%2Fcurl-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftls-inspector%2Fcurl-ios/lists"}