Skip to main content

Distributed file discovery and addressing system with permission control

Project description

🔐 Syft Objects

Distributed file discovery and addressing with granular permission control

PyPI version Python 3.8+ License

✨ What is Syft Objects?

Syft Objects is a distributed file discovery system that lets you share files with explicit mock vs private content control and granular permission management. Perfect for data science, research, and any scenario where you need to share different versions of files with different people.

from syft_objects import syobj

# Create an object with explicit mock vs private content
obj = syobj(
    name="Customer Analysis",
    mock_contents="Sample: 100 customers, avg age 42",
    private_contents="Full: 47,293 customers, avg age 41.7, LTV $1,247",
    discovery_read=["public"],           # Who knows it exists
    mock_read=["team@company.com"],      # Who sees demo
    private_read=["admin@company.com"]   # Who sees real data
)

# Beautiful HTML display in Jupyter
obj

🚀 Key Features

🎯 Explicit Content Control

  • Mock content: What everyone sees (demo version)
  • Private content: What authorized users see (real data)
  • No magic: You control exactly what goes where

🔒 Granular Permissions

  • Discovery: Who knows the object exists
  • Mock: Who can read/write demo content
  • Private: Who can read/write real data

📱 Beautiful Jupyter Display

  • Rich HTML widgets with permission badges
  • File path display for all three file types
  • Clean, organized layout
  • No external dependencies

🌐 Distributed by Design

  • Works across many locations (not centralized)
  • SyftBox integration for proper distributed storage
  • Lightweight for search and discovery

📦 Installation

pip install syft-objects

For SyftBox integration:

pip install syft-objects[syftbox]

🎯 Quick Start

Basic Usage

from syft_objects import syobj

# Simple content sharing
obj = syobj(
    name="AI Model Results",
    mock_contents="Model achieved good performance",
    private_contents="Accuracy: 94.5%, F1: 0.92, Cost: $127"
)

File-Based Sharing

# Use existing files
obj = syobj(
    name="Customer Database",
    mock_file="sample_100_rows.csv",      # Demo file
    private_file="full_50k_rows.csv",     # Real dataset
    mock_read=["analyst@company.com"],
    private_read=["admin@company.com"]
)

Restricted Discovery

# Control who even knows it exists
obj = syobj(
    name="Confidential Report",
    mock_contents="Q4 summary available",
    private_contents="Revenue: $2.5M, detailed breakdown...",
    discovery_read=["director@company.com"],  # Only director knows it exists
    mock_read=["manager@company.com"],        # Manager sees summary
    private_read=["ceo@company.com"]          # CEO sees details
)

📚 Documentation

🎨 Design Philosophy

Ultra-Clean API

  • One function: syobj() - that's it
  • Clear parameters: mock_contents vs private_contents
  • Explicit permissions: discovery_read, mock_read, private_read

No Surprises

  • You specify exactly what goes in mock vs private
  • No auto-generation or magic content creation
  • Full control over permissions and access

Jupyter-First

  • Beautiful HTML widgets out of the box
  • File paths displayed clearly
  • Permission badges for easy understanding

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

📄 License

Apache License 2.0 - see LICENSE file for details.

🔗 Related Projects

  • SyftBox - Distributed storage backend
  • Syft - Privacy-preserving machine learning
  • OpenMined - Privacy-preserving AI ecosystem

Built with ❤️ by OpenMined

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

syft_objects-0.2.0.tar.gz (36.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

syft_objects-0.2.0-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file syft_objects-0.2.0.tar.gz.

File metadata

  • Download URL: syft_objects-0.2.0.tar.gz
  • Upload date:
  • Size: 36.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.20

File hashes

Hashes for syft_objects-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a061ffa23c5ae46dd7b128837ee0bd850fedd6aff73f533ffaa2976939e7fa52
MD5 289d47e038e2a3acbd42646ee960e641
BLAKE2b-256 b1e942c26ad4f8deb79ef5c7183f9fd9564adcb89f6cbc26dce05a35fb99b8cb

See more details on using hashes here.

File details

Details for the file syft_objects-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for syft_objects-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a9a780b5a058f5c83704b6f80b19db6b23ee4c13affeed96b2faaf7fb30f278
MD5 b048a7306de712119455a519d92e8ed6
BLAKE2b-256 b41f4ece29a650733e01a25a2ac06fe390ebb086847a37990278fcc6d5c698db

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page