{"id":16748644,"url":"https://github.com/honeyryderchuck/idnx","last_synced_at":"2025-03-21T22:31:55.441Z","repository":{"id":43201497,"uuid":"373654676","full_name":"HoneyryderChuck/idnx","owner":"HoneyryderChuck","description":"Encode and decode internationalized domain names using libidn2, winnls and ruby FFI","archived":false,"fork":false,"pushed_at":"2025-01-04T00:17:47.000Z","size":46,"stargazers_count":12,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T05:43:59.576Z","etag":null,"topics":["ffi","idna","libidn2","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HoneyryderChuck.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2021-06-03T22:15:25.000Z","updated_at":"2025-02-23T04:31:33.000Z","dependencies_parsed_at":"2024-10-28T11:53:38.882Z","dependency_job_id":null,"html_url":"https://github.com/HoneyryderChuck/idnx","commit_stats":{"total_commits":43,"total_committers":1,"mean_commits":43.0,"dds":0.0,"last_synced_commit":"895b5831ebe3ac42842e2097779df86d03d052cc"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoneyryderChuck%2Fidnx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoneyryderChuck%2Fidnx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoneyryderChuck%2Fidnx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoneyryderChuck%2Fidnx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HoneyryderChuck","download_url":"https://codeload.github.com/HoneyryderChuck/idnx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244880353,"owners_count":20525507,"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":["ffi","idna","libidn2","ruby"],"created_at":"2024-10-13T02:13:16.600Z","updated_at":"2025-03-21T22:31:55.144Z","avatar_url":"https://github.com/HoneyryderChuck.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Idnx\n\n[![Gem Version](https://badge.fury.io/rb/idnx.svg)](http://rubygems.org/gems/idnx)\n[![CI](https://github.com/HoneyryderChuck/idnx/actions/workflows/test.yml/badge.svg)](https://github.com/HoneyryderChuck/idnx/actions/workflows/test.yml)\n\n\n\n`idnx` provides a Ruby API for decoding Internationalized domain names into Punycode.\n\nIt provides multi-platform support by using the most approriate strategy based on the target environment:\n\n* It uses (and requires the installation of) [libidn2](https://github.com/libidn/libidn2) in Linux / MacOS;\n* It uses [the appropriate winnls APIs](https://docs.microsoft.com/en-us/windows/win32/api/winnls/nf-winnls-idntoascii) in Windows;\n* It falls back to a pure ruby Punycode 2003 implementation;\n\n## Installation\n\nIf you're on Linux or Mac OS, you'll have to install `libidn2` first:\n\n```\n# Mac OS\n\u003e brew install libidn2\n# Ubuntu, as an example\n\u003e apt-get install idn2\n```\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'idnx'\n```\n\nAnd then execute:\n\n    $ bundle install\n\nOr install it yourself as:\n\n    $ gem install idnx\n\n## Usage\n\n```ruby\nrequire \"idnx\"\n\nIdnx.to_punycode(\"bücher.de\") #=\u003e \"xn--bcher-kva.de\"\n```\n\n## Ruby Support Policy\n\nThis library supports at least ruby 2.4 .It also supports both JRuby and Truffleruby.\n\n## Known Issues\n\n### JRuby on MacOS\n\n`idnx` won't work in MacOS when using JRuby 9.2 or lower, due to jruby FFI not having the same path lookup logic than it's counterpart for CRuby, thereby not finding `brew`-installed `libidn2`. This has been fixed since JRuby 9.3 .\n\n## Development\n\nIf you want to contribute, fork this project, and submit changes via a PR on github.\n\nFor running tests, you can run `rake test`.\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/HoneyryderChuck/idnx.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoneyryderchuck%2Fidnx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhoneyryderchuck%2Fidnx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoneyryderchuck%2Fidnx/lists"}