Distributed file discovery and addressing system with permission control
Project description
🔐 Syft Objects
Distributed file discovery and addressing with granular permission control
✨ 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
- Quick Start Guide - Get up and running in 5 minutes
- Tutorial Notebook - Interactive Jupyter tutorial
- API Reference - Complete function documentation
- SyftBox Integration - Distributed storage setup
🎨 Design Philosophy
Ultra-Clean API
- One function:
syobj()- that's it - Clear parameters:
mock_contentsvsprivate_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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a061ffa23c5ae46dd7b128837ee0bd850fedd6aff73f533ffaa2976939e7fa52
|
|
| MD5 |
289d47e038e2a3acbd42646ee960e641
|
|
| BLAKE2b-256 |
b1e942c26ad4f8deb79ef5c7183f9fd9564adcb89f6cbc26dce05a35fb99b8cb
|
File details
Details for the file syft_objects-0.2.0-py3-none-any.whl.
File metadata
- Download URL: syft_objects-0.2.0-py3-none-any.whl
- Upload date:
- Size: 37.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a9a780b5a058f5c83704b6f80b19db6b23ee4c13affeed96b2faaf7fb30f278
|
|
| MD5 |
b048a7306de712119455a519d92e8ed6
|
|
| BLAKE2b-256 |
b41f4ece29a650733e01a25a2ac06fe390ebb086847a37990278fcc6d5c698db
|