Skip to main content

Python client for the Hashiverse decentralized social network

Project description

hashiverse-client-python

Python client for the Hashiverse decentralized social network. Wraps the Rust hashiverse-lib via PyO3 for native performance.

Usage

test-hashiverse-client-python with maturin develop --release + pytest

Prerequisites

  • Python 3.9+
  • Rust nightly toolchain (see rust-toolchain.toml in workspace root)

Development build

cd hashiverse-rust/hashiverse-client-python

# Create and activate a virtual environment
python -m venv .venv

# Windows
.venv\Scripts\activate

# Linux/macOS
source .venv/bin/activate

# Install maturin and build the extension into the venv
pip install maturin
maturin develop

maturin develop compiles the Rust code in debug mode and installs the resulting Python package into the active venv. Re-run it after any Rust code changes.

For a faster extension (recommended if testing PoW or network operations):

maturin develop --release

Production build

To build a distributable wheel:

maturin build --release

The wheel is written to target/wheels/ and can be installed with:

pip install target/wheels/hashiverse_client-*.whl

Running the example

The example connects to a local hashiverse server, creates an identity, fetches trending hashtags, and reads the #hashiverse timeline.

  1. Start a local server cluster using the test harness (in a separate terminal from the workspace root):
cd hashiverse-rust
cargo run -p hashiverse-integration-tests --bin test_harness
  1. Run the example:
cd hashiverse-rust/hashiverse-client-python
python examples/hello_hashiverse.py

Running tests

The test suite exercises offline client operations (no server required): identity creation, key management, and storage operations.

cd hashiverse-rust/hashiverse-client-python
source .venv/bin/activate  # or .venv\Scripts\activate on Windows
pip install pytest
maturin develop --release
python -m pytest tests/ -v

Quick start

from hashiverse_client import HashiverseClient

client = HashiverseClient.create_from_keyphrase(
    key_phrase="my secret keyphrase",
    data_dir="~/.hashiverse",
    passphrase="my secret passphrase",  # encrypts key files at rest (default: "" = no encryption)
)

print(client.client_id)
client.post("Hello from Python! #hashiverse-python")

timeline = client.get_hashtag_timeline("hashiverse-python")
for post in timeline.posts:
    print(f"{post.client_id[:8]}: {post.post}")

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

hashiverse_client-1.0.2rc2-cp39-abi3-win_amd64.whl (6.7 MB view details)

Uploaded CPython 3.9+Windows x86-64

hashiverse_client-1.0.2rc2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

hashiverse_client-1.0.2rc2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

hashiverse_client-1.0.2rc2-cp39-abi3-macosx_11_0_arm64.whl (6.5 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

hashiverse_client-1.0.2rc2-cp39-abi3-macosx_10_12_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file hashiverse_client-1.0.2rc2-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for hashiverse_client-1.0.2rc2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a4f293cc08388133f35e5c51538c13a67c4caf45db24a543db524657cf6d8ded
MD5 41bab89c35fd478b6bd6e552010eac6c
BLAKE2b-256 f71f43effbc49806de882abfe0a4443d2601087df317c10deac9dd2e0fba206c

See more details on using hashes here.

Provenance

The following attestation bundles were made for hashiverse_client-1.0.2rc2-cp39-abi3-win_amd64.whl:

Publisher: publish-hashiverse-client-python.yml on hashiverse/hashiverse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hashiverse_client-1.0.2rc2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hashiverse_client-1.0.2rc2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f294d4187da1fae19e535829f7f5a08cdb5cc8503cbaa1d98943322b0e870542
MD5 1120937cb9269b5af9d636beebf220de
BLAKE2b-256 d5a2a54d7df382fc1755a384d636cf6ec5b1ddf78421c25f668434faf6fe2def

See more details on using hashes here.

Provenance

The following attestation bundles were made for hashiverse_client-1.0.2rc2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-hashiverse-client-python.yml on hashiverse/hashiverse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hashiverse_client-1.0.2rc2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for hashiverse_client-1.0.2rc2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 18821e4d158a8dc446be9c28e08dfa416336bd073c61654b61242895b13f7cb6
MD5 4bb2fc32e7ae5706488babef8c0616c1
BLAKE2b-256 032c8ecae7ef929b4b8b1dbf49d3ac5ea290686a912ec7aa2ca8994d3f925301

See more details on using hashes here.

Provenance

The following attestation bundles were made for hashiverse_client-1.0.2rc2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-hashiverse-client-python.yml on hashiverse/hashiverse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hashiverse_client-1.0.2rc2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hashiverse_client-1.0.2rc2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e380e6beb471a9d4afbb44d800f4487fee891b4aa5c77219885ffc09f966ed2a
MD5 787cf967b9376839bb57f49e9594d8d1
BLAKE2b-256 8fed845ad7e1b197d02e669a56494643c473246069387191e321d0ea9a81ee87

See more details on using hashes here.

Provenance

The following attestation bundles were made for hashiverse_client-1.0.2rc2-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: publish-hashiverse-client-python.yml on hashiverse/hashiverse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hashiverse_client-1.0.2rc2-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for hashiverse_client-1.0.2rc2-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 eaf35d071edb8db3c87311c723b5bfb14e859ad271d4635fda66e0198088dc0a
MD5 57293d3b634871ac5663d8ad01068d1b
BLAKE2b-256 1184f4a43b79a410466a90f7356086ff4806690b0f88720a4d667b0b5af396b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for hashiverse_client-1.0.2rc2-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: publish-hashiverse-client-python.yml on hashiverse/hashiverse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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