{"id":20047360,"url":"https://github.com/amokan/human_name","last_synced_at":"2025-05-05T10:31:16.832Z","repository":{"id":39793402,"uuid":"407989372","full_name":"amokan/human_name","owner":"amokan","description":"Elixir bindings for the human-name crate implemented as a safe Rust NIF","archived":false,"fork":false,"pushed_at":"2025-04-10T03:59:02.000Z","size":102,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-26T06:15:32.972Z","etag":null,"topics":["elixir","human-names","name-parsing","nlp","rustler"],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/amokan.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-09-18T23:32:09.000Z","updated_at":"2025-04-10T03:55:56.000Z","dependencies_parsed_at":"2024-03-24T18:30:08.548Z","dependency_job_id":"5ddb49fe-00b1-495f-a41a-0233a23f2def","html_url":"https://github.com/amokan/human_name","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amokan%2Fhuman_name","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amokan%2Fhuman_name/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amokan%2Fhuman_name/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amokan%2Fhuman_name/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amokan","download_url":"https://codeload.github.com/amokan/human_name/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252480429,"owners_count":21754775,"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":["elixir","human-names","name-parsing","nlp","rustler"],"created_at":"2024-11-13T11:35:50.084Z","updated_at":"2025-05-05T10:31:16.819Z","avatar_url":"https://github.com/amokan.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HumanName\n\n[![CI](https://github.com/amokan/human_name/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/amokan/human_name/actions/workflows/ci.yaml)\n[![Hex.pm](https://img.shields.io/hexpm/v/human_name.svg)](https://hex.pm/packages/human_name)\n[![Coverage Status](https://coveralls.io/repos/github/amokan/human_name/badge.svg?branch=main)](https://coveralls.io/github/amokan/human_name?branch=main)\n\nElixir wrapper for [David Judd's](https://github.com/djudd) excellent [human-name](https://crates.io/crates/human_name) crate implemented as a BEAM-friendly Rust NIF.\n\nThe API implemented for use in Elixir/Erlang does not cover every aspect of the Rust library. Feel free to open a PR for contributions.\n\n## Installation\n\nThis package can be installed by adding `human_name` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:human_name, \"~\u003e 0.6.2\"}\n  ]\nend\n```\n\nBy default **you do not need Rust installed** because the lib will try to download a precompiled NIF file.\n\nIn case you want to force compilation set the\n`HUMAN_NAME_BUILD` environment variable to `true` or `1`.\n\nTo run tests locally, you could do a `HUMAN_NAME_BUILD=1 mix test`.\n\nAlternatively you can also set the application env `:build_from_source` to `true` in order to force the build:\n\n```elixir\nconfig :human_name, HumanName, build_from_source: true\n```\n\n## Usage\n\n```elixir\niex\u003e HumanName.consistent_with?(\"Jimmy H Jenkins\", \"Jim Jenkins\")\n{:ok, true}\n\niex\u003e HumanName.first_and_last_initials(\"Dr. Alibaster Cornelius Juniper III\")\n{:ok, \"AJ\"}\n\niex\u003e HumanName.first_initial(\"Dr. Alibaster Cornelius Juniper III\")\n{:ok, \"A\"}\n\niex\u003e HumanName.first_initial_last(\"Jimmy H Jenkins\")\n{:ok, \"J. Jenkins\"}\n\niex\u003e HumanName.first_name(\"Dr. Alibaster Cornelius Juniper III\")\n{:ok, \"Alibaster\"}\n\niex\u003e HumanName.middle_initials(\"Dr. Alibaster Cornelius Juniper III\")\n{:ok, \"C\"}\n\niex\u003e HumanName.middle_name(\"Dr. Alibaster Cornelius Juniper III\")\n{:ok, \"Cornelius\"}\n\niex\u003e HumanName.last_initial(\"Jimmy H Jenkins\")\n{:ok, \"J\"}\n\niex\u003e HumanName.last_name(\"Dr. Alibaster Cornelius Juniper III\")\n{:ok, \"Juniper\"}\n\niex\u003e HumanName.normalize(\"Dr. Alibaster Cornelius Juniper III\")\n{:ok, \"Alibaster Juniper\"}\n\niex\u003e HumanName.normalize_full(\"JIMMY H JENKINS\")\n{:ok, \"Jimmy H. Jenkins\"}\n```\n\n----\n\n## License\n\nMIT License\n\nSee the [license file](LICENSE.txt) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famokan%2Fhuman_name","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famokan%2Fhuman_name","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famokan%2Fhuman_name/lists"}