Feedo Network Python SDK
The official Developer SDK for interacting with the Feedo Network.
Feedo is a decentralized network consisting of Search, Consensus, and Storage nodes. This SDK provides a unified, asynchronous interface to interact with all layers of the Feedo Network.
Features
- Dynamic Node Routing: The SDK automatically pings seed nodes and routes your requests to the fastest available node. If a node goes offline, the router instantly falls back to another healthy node.
- Fully Asynchronous: Built on top of
httpxandasynciofor maximum performance in AI agents and backend applications. - Search Module: Execute semantic vector queries, index new documents, and manage deployed websites.
- Consensus Module: Register Decentralized Identifiers (DIDs), resolve
.feedonames, and manage network grants. - Storage Module: Upload, download, and subscribe to data streams on the decentralized storage layer.
Installation
pip install feedo-sdk
Initialization
The SDK requires an event loop since it is entirely async. You do not need to specify URLs for the nodes; the SDK auto-discovers the fastest connection.
import asyncio
from feedo import FeedoClient
async def main():
client = FeedoClient()
# Your code here
asyncio.run(main())
(Optional) Custom seed nodes for private clusters:
client = FeedoClient(
search_seeds=["https://my-search.node"],
consensus_seeds=["https://my-consensus.node"],
storage_seeds=["https://my-storage.node"]
)
Search Module (client.search)
The Search module handles semantic queries and document vectorization.
query(query_text: str, limit: int = 10)
Perform a semantic search across the network.
results = await client.search.query("DeFi protocols", limit=5)
print(results)
index_document(content: str, metadata: dict = None)
Index a raw document into the vector database.
await client.search.index_document("Bitcoin is decentralized.", {"source": "wiki"})
deploy_proxy(directory_path: str, domain: str)
Publish a local directory to the network under a specific domain.
await client.search.deploy_proxy("/path/to/build", "my-app.feedo")
unpin(cid: str)
Remove a pinned deployment from the proxy.
await client.search.unpin("Qm...")
get_stats()
Retrieve network statistics.
stats = await client.search.get_stats()
Consensus Module (client.consensus)
The Consensus module manages identity (DIDs), naming (.feedo domains), and grants.
resolve_name(name: str)
Resolve a .feedo domain to its underlying CID (IPFS hash).
info = await client.consensus.resolve_name("my-app.feedo")
print(info['cid'])
register_did(pubkey_hex: str, signature_hex: str)
Register a new Decentralized Identifier.
await client.consensus.register_did("0xabc...", "0xdef...")
get_did_balance(did: str)
Check the token balance of a specific DID.
balance = await client.consensus.get_did_balance("did:feedo:0xabc...")
register_name(name: str, did: str, cid: str, signature_hex: str)
Register a new .feedo domain.
await client.consensus.register_name("my-app", "did:feedo:...", "Qm...", "0x...")
update_name_cid(name: str, new_cid: str, signature_hex: str)
Update the CID of an existing name.
await client.consensus.update_name_cid("my-app", "QmNew...", "0x...")
Storage Module (client.storage)
The Storage module acts as a decentralized file system.
upload_file(file_path: str, filename: str = "file")
Upload a local file to the network.
response = await client.storage.upload_file("./image.png")
print("Hash:", response['hash'])
download_file(hash_id: str) -> bytes
Download a file from the network by its hash.
raw_data = await client.storage.download_file("Qm...")
with open("downloaded.png", "wb") as f:
f.write(raw_data)
ingest_json(payload: dict)
Ingest structured JSON data directly into storage.
await client.storage.ingest_json({"user": "alice", "action": "post"})
get_recent_files()
Get a list of recently uploaded files.
recent = await client.storage.get_recent_files()
License
Apache License 2.0
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 feedo_sdk-0.1.3.tar.gz.
File metadata
- Download URL: feedo_sdk-0.1.3.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0df9712a65ab89543e76d20af9fc8ef88b1ba921b7bd217f8fb745222528be3d
|
|
| MD5 |
03576f55f0f8ebd078e47c29eed08561
|
|
| BLAKE2b-256 |
84ba59ecf525d7adca3fe6f9b167b2641c10de405569e3003305876bf585759c
|
File details
Details for the file feedo_sdk-0.1.3-py3-none-any.whl.
File metadata
- Download URL: feedo_sdk-0.1.3-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e510dc31306dd2559d7df517b3000864f63afe8bac460712cecbaad89c5f4853
|
|
| MD5 |
80d17bce4f43aceeb902e444c5120b2e
|
|
| BLAKE2b-256 |
07291fb3bd61337500eea352b57d4b710be838dd06a8452693d8644c9d38fa20
|