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.1.0.tar.gz (20.0 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.1.0-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for syft_objects-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ef64e1953436748e2c720c6300632552153dba331b035074ff4a0926871b1301
MD5 039562f9fedaa939430e749430e5b655
BLAKE2b-256 20e160849d8b263f82fa38810c32079bd5196e71ab11585b83965fcc1e5083ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for syft_objects-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a0323b0b694cefdd898b43b515007cb01f130d93f6f3daae752633e2c84428c
MD5 c059b9c9a4b1fa840f804a298713f3ea
BLAKE2b-256 751fc69a494cfef287f9be5db373367b9810341531925527cd4751e1ecc9b534

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