Swiftpack.co - chrisballinger/libidn-framework as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by chrisballinger.
chrisballinger/libidn-framework 1.35.1
libidn.framework and libidn.podspec for GNU Libidn
⭐️ 5
🕓 3 weeks ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/chrisballinger/libidn-framework.git", from: "1.35.1")


CI Status Version License Platform

From GNU IDN Library - Libidn

GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain names. The native C, C# and Java libraries are available under the GNU Lesser General Public License version 2.1 or later.

The library contains a generic Stringprep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included.

This podspec uses a fork of libidn to fix a few minor issues related to CocoaPods integration.


To run the example project, clone the repo, and run pod install from the Example directory first.


Swift Package Manager

libidn is available through Swift Package Manager. To install it, simply add the following to your Package.swift:

dependencies: [
    .package(url: "https://github.com/chrisballinger/libidn-framework.git", .upToNextMajor(from: "x.x.x"))

Make sure to replace x.x.x with the appropriate version number.


libidn is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "libidn"

Maintenance Notes

Upgrading libidn:

  • Download latest release 1.x from https://ftp.gnu.org/gnu/libidn. The 2.x series does not include stringprep, which is needed by this wrapper library.
  • Copy over updated files that are in /lib folder
  • Comment out #include <config.h>"
  • Replace # include <idn-int.h> and #include "unistr.h" with #include <stdint.h>



libidn is available under the LGPL license, but the podspec and example code in this repo is MIT. See LICENSE for more details.


Stars: 5
Last commit: 3 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

Version 1.35.1
1 year ago
  • Swift Package Manager support #6 #7

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics