syft-awake


Namesyft-awake JSON
Version 0.2.1 PyPI version JSON
download
home_pageNone
SummaryFast, secure network awakeness monitoring for SyftBox - ping members to see who's online and ready for interactive queries
upload_time2025-07-12 06:30:38
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Syft Awake ๐Ÿš€

See who's online and ready to collaborate in your SyftBox network

## What is it?

Syft Awake helps coordinate live collaboration on [SyftBox](https://www.syftbox.net/) - the open-source platform for privacy-first AI development. Check who's online before starting federated learning experiments, research sessions, or collaborative development.

## Quick Start

```bash
pip install syft-awake
```

```python
import syft_awake as sa

# Ping someone to see if they're online
response = sa.ping_user("colleague@university.edu")
if response:
    print(f"{response.responder} is {response.status}")

# Find everyone who's currently online
responses = sa.ping_network()
online_now = [r.responder for r in responses]
print(f"Online: {', '.join(online_now)}")
```

## Use Cases

**๐Ÿงช Research Coordination**
```python
# Check if collaborators are available before starting experiments
research_team = ["alice@university.edu", "bob@lab.org"]
responses = sa.ping_network(research_team)
if len(responses) >= 2:
    print("Enough researchers online - let's start the federated learning!")
```

**๐Ÿค Live Development Sessions**
```python
# See who's available for pair programming or code review
responses = sa.ping_network()
for r in responses:
    if "development" in r.capabilities:
        print(f"{r.responder} is available for development work")
```

**๐Ÿ“Š Distributed Computing**
```python
# Find compute nodes with light workload for your job
responses = sa.ping_network()
available_nodes = [r for r in responses if r.workload == "light"]
print(f"Found {len(available_nodes)} available compute nodes")
```

## API

Just two simple functions:

**`ping_user(email, timeout=30)`** โ†’ `AwakeResponse` or `None`  
**`ping_network(emails=None, timeout=15)`** โ†’ `List[AwakeResponse]`

Auto-installs and auto-discovers network members. Works silently in the background.

## How It Works

- **Automatic**: Simply importing the library installs the SyftBox app
- **Private**: Uses SyftBox's secure, file-based communication  
- **Decentralized**: No central servers - direct peer-to-peer pings
- **Smart Discovery**: Finds other users by scanning your local SyftBox network

Perfect for coordinating real-time collaboration in privacy-preserving AI research and development.

## License

Apache 2.0
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "syft-awake",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "Andrew Trask <contact@andrewtrask.net>",
    "download_url": "https://files.pythonhosted.org/packages/f0/14/956438515ca483d73f41428f19b0f2511ae8a35d7dbadaf61b7e6e13ff18/syft_awake-0.2.1.tar.gz",
    "platform": null,
    "description": "# Syft Awake \ud83d\ude80\n\nSee who's online and ready to collaborate in your SyftBox network\n\n## What is it?\n\nSyft Awake helps coordinate live collaboration on [SyftBox](https://www.syftbox.net/) - the open-source platform for privacy-first AI development. Check who's online before starting federated learning experiments, research sessions, or collaborative development.\n\n## Quick Start\n\n```bash\npip install syft-awake\n```\n\n```python\nimport syft_awake as sa\n\n# Ping someone to see if they're online\nresponse = sa.ping_user(\"colleague@university.edu\")\nif response:\n    print(f\"{response.responder} is {response.status}\")\n\n# Find everyone who's currently online\nresponses = sa.ping_network()\nonline_now = [r.responder for r in responses]\nprint(f\"Online: {', '.join(online_now)}\")\n```\n\n## Use Cases\n\n**\ud83e\uddea Research Coordination**\n```python\n# Check if collaborators are available before starting experiments\nresearch_team = [\"alice@university.edu\", \"bob@lab.org\"]\nresponses = sa.ping_network(research_team)\nif len(responses) >= 2:\n    print(\"Enough researchers online - let's start the federated learning!\")\n```\n\n**\ud83e\udd1d Live Development Sessions**\n```python\n# See who's available for pair programming or code review\nresponses = sa.ping_network()\nfor r in responses:\n    if \"development\" in r.capabilities:\n        print(f\"{r.responder} is available for development work\")\n```\n\n**\ud83d\udcca Distributed Computing**\n```python\n# Find compute nodes with light workload for your job\nresponses = sa.ping_network()\navailable_nodes = [r for r in responses if r.workload == \"light\"]\nprint(f\"Found {len(available_nodes)} available compute nodes\")\n```\n\n## API\n\nJust two simple functions:\n\n**`ping_user(email, timeout=30)`** \u2192 `AwakeResponse` or `None`  \n**`ping_network(emails=None, timeout=15)`** \u2192 `List[AwakeResponse]`\n\nAuto-installs and auto-discovers network members. Works silently in the background.\n\n## How It Works\n\n- **Automatic**: Simply importing the library installs the SyftBox app\n- **Private**: Uses SyftBox's secure, file-based communication  \n- **Decentralized**: No central servers - direct peer-to-peer pings\n- **Smart Discovery**: Finds other users by scanning your local SyftBox network\n\nPerfect for coordinating real-time collaboration in privacy-preserving AI research and development.\n\n## License\n\nApache 2.0",
    "bugtrack_url": null,
    "license": null,
    "summary": "Fast, secure network awakeness monitoring for SyftBox - ping members to see who's online and ready for interactive queries",
    "version": "0.2.1",
    "project_urls": {
        "Homepage": "https://github.com/iamtrask/syft-awake",
        "Repository": "https://github.com/iamtrask/syft-awake.git"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f0835e6ea34c0fe87d88b5eacd87969944b8dabc3b71b3bbe408f6343a3bca8e",
                "md5": "b3134b6a960bb4cbf834d29f7b3a1541",
                "sha256": "78f7ee19ec6eee5dd7f082127feccaf533b046704a691904a4e8c05bad771d5d"
            },
            "downloads": -1,
            "filename": "syft_awake-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b3134b6a960bb4cbf834d29f7b3a1541",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 14206,
            "upload_time": "2025-07-12T06:30:36",
            "upload_time_iso_8601": "2025-07-12T06:30:36.736795Z",
            "url": "https://files.pythonhosted.org/packages/f0/83/5e6ea34c0fe87d88b5eacd87969944b8dabc3b71b3bbe408f6343a3bca8e/syft_awake-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f014956438515ca483d73f41428f19b0f2511ae8a35d7dbadaf61b7e6e13ff18",
                "md5": "62d0a3f2296782676c1d406c6bb2022d",
                "sha256": "37acddbe7a2f052e4483c971e8f7ad223ec987f837c1c68d7b91455d1495e9ef"
            },
            "downloads": -1,
            "filename": "syft_awake-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "62d0a3f2296782676c1d406c6bb2022d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 46671,
            "upload_time": "2025-07-12T06:30:38",
            "upload_time_iso_8601": "2025-07-12T06:30:38.175039Z",
            "url": "https://files.pythonhosted.org/packages/f0/14/956438515ca483d73f41428f19b0f2511ae8a35d7dbadaf61b7e6e13ff18/syft_awake-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-12 06:30:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "iamtrask",
    "github_project": "syft-awake",
    "github_not_found": true,
    "lcname": "syft-awake"
}
        
Elapsed time: 0.45574s