{"id":15442943,"url":"https://github.com/anubhav-narayan/pkns","last_synced_at":"2026-01-19T18:32:05.275Z","repository":{"id":57453227,"uuid":"362689153","full_name":"anubhav-narayan/PKNS","owner":"anubhav-narayan","description":"Public Key Name System Framework for Key Exchange in Peer-To-Peer and centralised servers. ","archived":false,"fork":false,"pushed_at":"2023-01-13T04:52:20.000Z","size":102,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-18T13:17:01.662Z","etag":null,"topics":["cryptography","key-exchange","peer-to-peer","public-key-cryptography","python-3","python3-framework","web-service"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anubhav-narayan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2021-04-29T04:26:42.000Z","updated_at":"2023-07-29T18:11:23.000Z","dependencies_parsed_at":"2023-02-09T14:32:45.111Z","dependency_job_id":null,"html_url":"https://github.com/anubhav-narayan/PKNS","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubhav-narayan%2FPKNS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubhav-narayan%2FPKNS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubhav-narayan%2FPKNS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubhav-narayan%2FPKNS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anubhav-narayan","download_url":"https://codeload.github.com/anubhav-narayan/PKNS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247521349,"owners_count":20952347,"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":["cryptography","key-exchange","peer-to-peer","public-key-cryptography","python-3","python3-framework","web-service"],"created_at":"2024-10-01T19:32:02.801Z","updated_at":"2026-01-19T18:32:05.228Z","avatar_url":"https://github.com/anubhav-narayan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Public Key Name System Framework\n[![Made with Python3](https://img.shields.io/badge/Made%20With-Python3-blue)](https://www.python.org/) [![GitHub license](https://img.shields.io/badge/license-AGPLv3-purple.svg)](https://github.com/anubhav-narayan/PKNS/blob/master/LICENSE) [![PyPI](https://img.shields.io/pypi/v/pkns?color=green\u0026label=version)]() [![Github status](https://img.shields.io/badge/status-Public%20Beta-green)\n](http://github.com/anubhav-narayan/PKNS) [![Made with](https://img.shields.io/badge/Built%20with-SQLite3%20|%20Click%20|%20Daemonocle%20|%20PyCryptodome-blue)](http://github.com/anubhav-narayan/PKNS)\\\nThis is the Public Key Name System Framework designed as a Public Key Exchange for both centralised and peer-to-peer services. It comes pre-built with useful and powerful CLI tools.\n## Installation\n### From source\nTo install from source use the following command, make sure you have `setuptools\u003e=50.0.0`\n```bash\npython3 seutp.py install\n```\nTo install from PyPI\n```bash\npip3 install pkns\n```\n## Using the `PKNS_Table` API\nThe `PKNS_Table` API is the core for the PKNS Local Services found in the `pknscore`\n```python\nfrom pkns.pknscore import PKNS_Table\nnew_table = PKNS_Table(PATH_TO_A_TABLE_DIR)\n```\n `PATH_TO_A_TABLE` can be a path to an existing table directory or a new table directory, defaults to `~/.pkns`.\n The API provides all basic table operations.\n ## Using the `PKNS_Server` API\n The `PKNS_Server` API is the core of PKNS Network Services found in the  `pknscore`. It provides the correct server handling and configuration for a hosted PKNS Services. The PKNS service runs on the default port `6300` .  It is capable to handle multiple clients and process multiple requests and can be safely daemonized.\n ```python\n from pkns.pknscore import PKNS_Server\n server = PKNS_Server(IP_ADDR, PORT, PATH_TO_A_TABLE_DIR)\n ```\n `IP_ADDR` is the IP Address to use for the server, defaults to `0.0.0.0`,  `PORT` is the port to be used for the server, defaults to `6300`,  `PATH_TO_A_TABLE` can be a path to an existing table directory or a new table directory, defaults to `~/.pkns`.\n## Query Syntax\nPKNS Query is used for better integration of centralised servers. The query follows a fixed Syntax\n```\npkns://HOST_SERVER[:PORT][/PEERGROUP][/USER]\n```\n## CLI Tools\nCLI Tools help manage the PKNS Tables and Servers easily, they also include useful functions.\n###  Local Table Manager `tabman`\nManaging Local Tables\n```bash\n$ pkns tabman\nUsage: pkns tabman [OPTIONS] COMMAND [ARGS]...\n\n  PKNS Table Manager\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  add-peergroup     Add/Create a Peergroup\n  add-user          Add Users to a Peergroup\n  del-peergroup     Delete/Leave a Peergroup\n  del-user          Remove Users from a Peergroup\n  get-peergroup     Get Info of a Peergroup\n  get-user          Get Users Info from a Peergroup\n  rename-peergroup  Rename a Peergroup\n  rename-user       Rename a User from a Peergroup\n\n```\n### Server Manager `server`\nServer Utilities\n```bash\n$ pkns server\nUsage: pkns server [OPTIONS] COMMAND [ARGS]...\n\n  PKNS Server Manager\n\nOptions:\n  -i, --host TEXT     IP Address to bind  [default: 0.0.0.0]\n  -p, --port INTEGER  Port to bind  [default: 6300]\n  --help              Show this message and exit.\n\nCommands:\n  restart  Restart PKNS Server\n  start    Start the PKNS Server\n  status   PKNS Server Status\n  stop     Stop the PKNS Server\n\n```\n### Other utilities\n#### Ping\nPing a Local or Remote Server\n```bash\n$ pkns ping --help\nUsage: pkns ping [OPTIONS] [ADDRESS]\n\n  PKNS Ping\n\nOptions:\n  -n, --nop INTEGER  Number of Pings to send\n  --help             Show this message and exit.\n\n```\n#### Query\nQuery Local or Remote Server\n```bash\n$ pkns query --help\nUsage: pkns query [OPTIONS] QUERY\n\n  PKNS Query\n\nOptions:\n  --help  Show this message and exit.\n``` \n#### Sync\nSync to Local or Remote Server\n```bash\n$ pkns sync --help\nUsage: pkns sync [OPTIONS] [ADDRESS]\n\n  PKNS Sync\n\nOptions:\n  --help  Show this message and exit.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanubhav-narayan%2Fpkns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanubhav-narayan%2Fpkns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanubhav-narayan%2Fpkns/lists"}