{"id":24914328,"url":"https://github.com/nicholasbhubbard/net-nostr","last_synced_at":"2026-07-06T07:30:56.993Z","repository":{"id":194402123,"uuid":"685346199","full_name":"NicholasBHubbard/Net-Nostr","owner":"NicholasBHubbard","description":"Perl implementation of the Nostr protocol","archived":false,"fork":false,"pushed_at":"2026-07-03T02:29:56.000Z","size":1751,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-03T04:28:47.604Z","etag":null,"topics":["nostr","perl"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NicholasBHubbard.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","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,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-08-31T03:05:15.000Z","updated_at":"2026-07-03T02:30:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"f423ead4-24b0-4d0b-9217-73674b748d1a","html_url":"https://github.com/NicholasBHubbard/Net-Nostr","commit_stats":null,"previous_names":["nicholasbhubbard/net-nostr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NicholasBHubbard/Net-Nostr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasBHubbard%2FNet-Nostr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasBHubbard%2FNet-Nostr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasBHubbard%2FNet-Nostr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasBHubbard%2FNet-Nostr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicholasBHubbard","download_url":"https://codeload.github.com/NicholasBHubbard/Net-Nostr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicholasBHubbard%2FNet-Nostr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35182322,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["nostr","perl"],"created_at":"2025-02-02T06:17:27.685Z","updated_at":"2026-07-06T07:30:56.987Z","avatar_url":"https://github.com/NicholasBHubbard.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Net::Nostr Monorepo\n\nA [Nostr](https://nostr.org/) library for Perl.\n\nThis repository contains four Perl distributions:\n\n- `Net-Nostr-Core`: core Nostr protocol tooling such as events, keys, filters,\n  messages, encryption helpers, and NIP-specific builders.\n- `Net-Nostr-Client`: `Net::Nostr::Client`, the WebSocket client implementation.\n- `Net-Nostr-Relay`: `Net::Nostr::Relay` and relay storage.\n- `Net-Nostr`: compatibility shim that installs Core, Client, and Relay.\n\n## Installation\n\nFor the full historical install:\n\n```\n$ cpanm Net::Nostr\n```\n\nFor protocol tooling only:\n\n```\n$ cpanm Net::Nostr::Core\n```\n\n`Net::Nostr::Identifier` can parse and verify NIP-05 response data with only\nCore installed. Its network methods, `lookup` and `verify`, lazy-load\n`AnyEvent::HTTP`; Core recommends that dependency, while the `Net::Nostr` shim\nrequires it.\n\n## Documentation\n\nFull API documentation: https://metacpan.org/pod/Net::Nostr\n\n## Supported NIPs\n\nConformance target: [nostr-protocol/nips commit 8f8444d0](https://github.com/nostr-protocol/nips/commit/8f8444d05a8842c40211ded5d10af3521541f865)\n(2026-07-01).\n\n- [NIP-01](https://github.com/nostr-protocol/nips/blob/master/01.md) - Basic protocol flow\n- [NIP-02](https://github.com/nostr-protocol/nips/blob/master/02.md) - Follow list\n- [NIP-03](https://github.com/nostr-protocol/nips/blob/master/03.md) - OpenTimestamps attestations for events\n- [NIP-05](https://github.com/nostr-protocol/nips/blob/master/05.md) - Mapping Nostr keys to DNS-based internet identifiers\n- [NIP-06](https://github.com/nostr-protocol/nips/blob/master/06.md) - Basic key derivation from mnemonic seed phrase\n- [NIP-09](https://github.com/nostr-protocol/nips/blob/master/09.md) - Event deletion request\n- [NIP-10](https://github.com/nostr-protocol/nips/blob/master/10.md) - Text notes and threads\n- [NIP-11](https://github.com/nostr-protocol/nips/blob/master/11.md) - Relay information document\n- [NIP-13](https://github.com/nostr-protocol/nips/blob/master/13.md) - Proof of Work\n- [NIP-17](https://github.com/nostr-protocol/nips/blob/master/17.md) - Private direct messages\n- [NIP-18](https://github.com/nostr-protocol/nips/blob/master/18.md) - Reposts\n- [NIP-19](https://github.com/nostr-protocol/nips/blob/master/19.md) - bech32-encoded entities\n- [NIP-21](https://github.com/nostr-protocol/nips/blob/master/21.md) - `nostr:` URI scheme\n- [NIP-22](https://github.com/nostr-protocol/nips/blob/master/22.md) - Comment\n- [NIP-23](https://github.com/nostr-protocol/nips/blob/master/23.md) - Long-form content\n- [NIP-24](https://github.com/nostr-protocol/nips/blob/master/24.md) - Extra metadata fields and tags\n- [NIP-25](https://github.com/nostr-protocol/nips/blob/master/25.md) - Reactions\n- [NIP-27](https://github.com/nostr-protocol/nips/blob/master/27.md) - Text note references\n- [NIP-29](https://github.com/nostr-protocol/nips/blob/master/29.md) - Relay-based groups\n- [NIP-32](https://github.com/nostr-protocol/nips/blob/master/32.md) - Labeling\n- [NIP-34](https://github.com/nostr-protocol/nips/blob/master/34.md) - git stuff\n- [NIP-35](https://github.com/nostr-protocol/nips/blob/master/35.md) - Torrents\n- [NIP-36](https://github.com/nostr-protocol/nips/blob/master/36.md) - Sensitive Content / Content Warning\n- [NIP-40](https://github.com/nostr-protocol/nips/blob/master/40.md) - Expiration timestamp\n- [NIP-42](https://github.com/nostr-protocol/nips/blob/master/42.md) - Authentication of clients to relays\n- [NIP-43](https://github.com/nostr-protocol/nips/blob/master/43.md) - Relay Access Metadata and Requests\n- [NIP-44](https://github.com/nostr-protocol/nips/blob/master/44.md) - Encrypted payloads (versioned)\n- [NIP-45](https://github.com/nostr-protocol/nips/blob/master/45.md) - Event counts\n- [NIP-46](https://github.com/nostr-protocol/nips/blob/master/46.md) - Nostr Remote Signing\n- [NIP-47](https://github.com/nostr-protocol/nips/blob/master/47.md) - Nostr Wallet Connect\n- [NIP-49](https://github.com/nostr-protocol/nips/blob/master/49.md) - Private key encryption\n- [NIP-50](https://github.com/nostr-protocol/nips/blob/master/50.md) - Search capability\n- [NIP-51](https://github.com/nostr-protocol/nips/blob/master/51.md) - Lists\n- [NIP-52](https://github.com/nostr-protocol/nips/blob/master/52.md) - Calendar Events\n- [NIP-53](https://github.com/nostr-protocol/nips/blob/master/53.md) - Live Activities\n- [NIP-54](https://github.com/nostr-protocol/nips/blob/master/54.md) - Wiki\n- [NIP-56](https://github.com/nostr-protocol/nips/blob/master/56.md) - Reporting\n- [NIP-57](https://github.com/nostr-protocol/nips/blob/master/57.md) - Lightning Zaps\n- [NIP-58](https://github.com/nostr-protocol/nips/blob/master/58.md) - Badges\n- [NIP-59](https://github.com/nostr-protocol/nips/blob/master/59.md) - Gift wrap\n- [NIP-60](https://github.com/nostr-protocol/nips/blob/master/60.md) - Cashu wallets\n- [NIP-61](https://github.com/nostr-protocol/nips/blob/master/61.md) - Nutzaps\n- [NIP-65](https://github.com/nostr-protocol/nips/blob/master/65.md) - Relay list metadata\n- [NIP-66](https://github.com/nostr-protocol/nips/blob/master/66.md) - Relay Discovery and Liveness Monitoring\n- [NIP-70](https://github.com/nostr-protocol/nips/blob/master/70.md) - Protected Events\n- [NIP-73](https://github.com/nostr-protocol/nips/blob/master/73.md) - External Content IDs\n- [NIP-77](https://github.com/nostr-protocol/nips/blob/master/77.md) - Negentropy Syncing\n- [NIP-78](https://github.com/nostr-protocol/nips/blob/master/78.md) - Arbitrary Custom App Data\n- [NIP-86](https://github.com/nostr-protocol/nips/blob/master/86.md) - Relay Management API\n- [NIP-87](https://github.com/nostr-protocol/nips/blob/master/87.md) - Ecash Mint Discoverability\n- [NIP-89](https://github.com/nostr-protocol/nips/blob/master/89.md) - Recommended Application Handlers\n- [NIP-92](https://github.com/nostr-protocol/nips/blob/master/92.md) - Media Attachments\n- [NIP-94](https://github.com/nostr-protocol/nips/blob/master/94.md) - File Metadata\n- [NIP-98](https://github.com/nostr-protocol/nips/blob/master/98.md) - HTTP auth\n- [NIP-99](https://github.com/nostr-protocol/nips/blob/master/99.md) - Classified Listings\n- [NIP-B7](https://github.com/nostr-protocol/nips/blob/master/B7.md) - Blossom media\n\nNIP-04 (legacy encrypted DMs) is deprecated and not supported.\n\n## Contributing\n\nDo not hesitate to open an [issue](https://github.com/NicholasBHubbard/Net-Nostr/issues) or [pull request](https://github.com/NicholasBHubbard/Net-Nostr/pulls)!\n\n## AI Usage\n\nThis code was developed in part with AI tooling such as Claude Code and Codex. We want to be upfront about that.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicholasbhubbard%2Fnet-nostr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicholasbhubbard%2Fnet-nostr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicholasbhubbard%2Fnet-nostr/lists"}