NP

nyaruka/phonenumbers

Deployment & DevOps

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

1,6 тыс. stars Качество 66 Тренд 44MIT

Перейти к порту библиотеки libphonenumber от Google

Обзор

Go порт либтелефона Google. В частности, он отслеживает реализацию — эталонную реализацию этой библиотеки, версии которой на C++ и JavaScript сами являются портами. Эта библиотека ежедневно используется в производстве для парсинга и валидации чисел по всему миру и хорошо поддерживается. Этот проект является строгим портом libphonenumber. Пожалуйста, не отправляйте запросы на функционал, которого там нет. Он также использует метаданные с libphonenumber, поэтому если вы столкнётесь с неожиданными результатами парсинга, сначала проверьте, влияет ли проблема на libphonenumber, и сообщите об этом там, если да. Вы можете использовать онлайн-демонстрацию для быстрой проверки результатов парсинга. См. UPGRADING.md для подробностей обновления с 1.x до 2.x. Команда buildmetadata восстанавливает встроенные метаданные из выходного релиза.

Обзор (машинный перевод)

Перейти к порту libphone номера Google. В частности, он отслеживает реализацию Java — эталонную реализацию этой библиотеки, версии которой на C++ и JavaScript сами являются портами. Эта библиотека ежедневно используется в продакшене для разбора и валидации чисел по всему миру и хорошо поддерживается.

[! ВАЖНО] Этот проект является строгим портом libphonenumber. Пожалуйста, не отправляйте запросы на функции функции, которых там нет. Он также использует метаданные из libphonenumber, поэтому если вы столкнётесь с неожиданными результатами разбора, пожалуйста, сначала проверьте, влияет ли проблема на libphonenumber, и сообщите там, если да. Вы можете использовать онлайн-демонстрацию для быстрой проверки результатов парсинга.

[! СОВЕТ] См. UPGRADING.md для подробностей об обновлении с 1.x до 2.x.

Установка

Использование

Обновление

Метаданные

Команда buildmetadata восстанавливает встроенные метаданные из выходящего релиза. Это клонирует релиз и восстанавливает gzip-скопления данных, встроенные в пакеты (core метаданные территории, короткие номера, альтернативные форматы, код страны→регион, оператор, геокодирование и часовой зоны), записывая релиз, из которого он построен в сгенерированном metadata/version.go.

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

☎️ phonenumbers

Go port of Google’s libphonenumber. Specifically it tracks the Java implementation — that library’s reference implementation, of which the C++ and JavaScript versions are themselves ports. This library is used daily in production for parsing and validation of numbers worldwide and is well maintained.

[!IMPORTANT] This project is a strict port of libphonenumber. Please do not submit feature requests for functionality that doesn’t exist there. It also uses the metadata from libphonenumber, so if you encounter unexpected parsing results, please first verify if the problem affects libphonenumber and report there if so. You can use the online demo to quickly check parsing results.

[!TIP] See UPGRADING.md for details on upgrading from 1.x to 2.x.

Installation

% go get github.com/nyaruka/phonenumbers/v2

Usage

import "github.com/nyaruka/phonenumbers/v2"

// parse our phone number
num, err := phonenumbers.Parse("8886418722", "US")

// check if it's a valid number for its region
valid := phonenumbers.IsValidNumber(num)

// format it using national format
formatted := phonenumbers.Format(num, phonenumbers.NATIONAL)

Updating

Metadata

The buildmetadata command regenerates the embedded metadata from an upstream release. It clones the release and rebuilds the gzipped data blobs embedded across the packages (core territory metadata, short numbers, alternate formats, country-code→region, carrier, geocoding, and timezone), recording the release it built from in the generated metadata/version.go.

# resolve and build from the latest upstream release
% go run ./cmd/buildmetadata

# or pin a specific release tag
% go run ./cmd/buildmetadata v9.0.31

This part is mechanical and fully automated.

Code

Regenerating the metadata is only half of a sync — the ported Go code also has to be reconciled against the new release’s Java logic changes, which is judgment work rather than a mechanical rebuild.

If you use Claude Code, the sync-upstream skill (.claude/skills/sync-upstream/SKILL.md) walks through the whole process — metadata regen plus the per-file code reconciliation. Invoke it with /sync-upstream or by asking it to sync with upstream. SYNC.md records the upstream version the port is synced against and the deliberate divergences from upstream.

Открыть полный README на GitHub

Рекомендуемые инструменты

Попробуйте другой запрос или уберите фильтр.

Установка

npx skillfish add nyaruka/phonenumbers
Новичок в MCP? Начните с руководства на mcpskill.org →