hashiverse-client
Python client for Hashiverse — your open-source decentralized X/Twitter replacement. Wraps the Rust hashiverse-lib via PyO3 for native performance.
Install
pip install hashiverse-client
Requires Python 3.9+. Pre-built wheels are published for Linux, macOS, and Windows.
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}")
What you can do
- Create or reload a cryptographic identity from a key phrase, with optional at-rest encryption.
- Post messages to the network.
- Read hashtag timelines.
- Fetch trending hashtags.
- Persist keys to a local data directory and reconnect to the same identity later.
See examples/hello_hashiverse.py for an end-to-end walkthrough covering identity creation, key reload, timeline reads, and trending hashtags.
Reloading a stored identity
After create_from_keyphrase has run once, the key is persisted in data_dir. Subsequent runs can skip the keyphrase and reconnect via the stored key:
client = HashiverseClient.create_from_stored_key(
client_id_hex=client_id,
data_dir="~/.hashiverse",
passphrase="my secret passphrase", # must match the passphrase used to create the key
)
Connecting to a local server
By default the client uses the public bootstrap addresses. To point at a local cluster (handy for testing), pass bootstrap_addresses:
client = HashiverseClient.create_from_keyphrase(
key_phrase="my example keyphrase",
data_dir=data_dir,
passphrase="my secret passphrase",
bootstrap_addresses=["127.0.0.1:443"],
)
A local cluster can be started with the test harness from this repository — see the "Running the example" section below.
Developing this package
The rest of this document describes how to build, test, and release hashiverse-client itself. End-user usage is covered above.
Prerequisites
- Python 3.9+
- Rust nightly toolchain (see
rust-toolchain.tomlin the 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 exercising 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 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
Running the example
The example connects to a local hashiverse server, creates an identity, fetches trending hashtags, and reads the #hashiverse timeline.
- 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
- Run the example:
cd hashiverse-rust/hashiverse-client-python
python examples/hello_hashiverse.py
Metadata
Release files for hashiverse-client 1.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| hashiverse_client-1.0.8-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| hashiverse_client-1.0.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| hashiverse_client-1.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| hashiverse_client-1.0.8-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
| hashiverse_client-1.0.8-cp39-abi3-macosx_10_12_x86_64.whl | CPython 3.9 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 33.6 MB
Release files / hashiverse_client-1.0.8-cp39-abi3-win_amd64.whl
| Download URL | hashiverse_client-1.0.8-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 6.7 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
9b3de5372c3c4133e623ed3ac317097104cc461dfe10970640c38b554aff4e0c
|
|
BLAKE2b-256 checksum How to use checksums |
3903dcd00c347715d99870d33b8f816f17bff94cea425ee9a2f31acc0ebe6b58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.
Transparency logRelease files / hashiverse_client-1.0.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | hashiverse_client-1.0.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 6.8 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
7384bb5c46c9fcbb1f39d485efb80c22ba70e569611f43acf4076dd0d401532d
|
|
BLAKE2b-256 checksum How to use checksums |
9053858a5efc082c3384a37a41d4d00ae51a668f6e24c1a1e42a1b469f36dd18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.
Transparency logRelease files / hashiverse_client-1.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | hashiverse_client-1.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
c2e4fddfd64635b5ae48c2af506cbf18ea70fd2c9409c9be9bb34b51e1a9aab4
|
|
BLAKE2b-256 checksum How to use checksums |
34537762a4f92da865dd81adb632019903635852c91bde63004b7cb9f85b31ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.
Transparency logRelease files / hashiverse_client-1.0.8-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | hashiverse_client-1.0.8-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.4 MB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3fc79e71b55cb98356c15906fc9185d34fb05593e58eca1dfc129a18d65014e9
|
|
BLAKE2b-256 checksum How to use checksums |
2e458b4d51b7ad1482231cef19d35da12cab2d0bc20fec2b6cb4a1f12455372f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.
Transparency logRelease files / hashiverse_client-1.0.8-cp39-abi3-macosx_10_12_x86_64.whl
| Download URL | hashiverse_client-1.0.8-cp39-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 6.8 MB |
| Tags | CPython 3.9 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
e0f00ec1db8369cc94c8ca5fce97eae1b5be2129a534783d1ba0d2110281013f
|
|
BLAKE2b-256 checksum How to use checksums |
c4dc91615a86d822c616ec7b36b449a760143d16d3543c2d14c2e6d7d76fa0d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.
Transparency log