v0.8.0
Highlights
v0.8.0 is a major release that transforms aleph-rs from a read-only SDK into a full read-write toolkit. The SDK can now create and submit every Aleph message type, the new CLI covers the full lifecycle of accounts, files, VMs, and nodes, and heph provides a local CCN for integration testing.
New Features
Full message creation & submission (#80, #89, #91, #92)
- New typed builders — PostBuilder, AggregateBuilder, ForgetBuilder, StoreBuilder, ProgramBuilder, InstanceBuilder — provide a safe, ergonomic API for constructing every Aleph
message type. - submit_message() on AlephMessageClient handles signing, serialization, and upload in one call.
- StoreBuilder supports streaming file upload, so large files never need to be buffered in memory.
- Inline content size limit raised to 200 kB (#88).
Account system with EVM & Solana signing (#78, #100, #107, #108)
- New Account trait abstracts over EVM (secp256k1/EIP-191) and Solana (Ed25519) key pairs for message signing.
- aleph account CLI commands manage accounts with OS keychain storage (Linux secret-service, macOS Keychain, Windows Credential Manager).
- Ledger hardware wallet support: sign messages directly from a Ledger device via the Ethereum app (#107).
- aleph account balance displays ALEPH token balances (#108).
Authorization management (#102, #111)
- New authorization system (types, SDK, and CLI) allows granting and revoking signing permissions to delegate addresses.
- on_behalf_of support enables delegated message signing — sign messages on behalf of another account using a granted authorization.
Corechannel operations (#83, #87, #103, #109)
- SDK module for corechannel node operations: create, update, and amend node records.
- CLI subcommands: aleph node create, aleph node update, aleph node amend, aleph node list.
CRN VM control (#105, #106)
- SDK client and CLI commands for controlling VMs on Compute Resource Nodes: start, stop, reboot, erase, and check status.
- aleph instance create deploys new VM instances (#97).
File upload & download (#81, #92, #94, #96)
- upload_to_storage() and upload_to_ipfs() on AlephStorageClient (#81).
- aleph file upload streams a local file to Aleph storage (#94).
- aleph file download retrieves files by item hash, message hash, or content ref (#96).
heph — lightweight local CCN for testing (#84, #86, #104)
- New heph crate: an in-process mock of the Aleph CCN API, backed by a local file store. Ideal for integration tests that need deterministic, offline message creation and retrieval.
- heph-based integration tests now run in CI (#86).
- Auto-generates corechannel aggregate from posted corechan operations (#104).
Auto-paginating iterators (#93)
- messages_iter() and posts_iter() return async iterators that automatically follow pagination, eliminating manual page management.
Named CCN endpoints (#112)
- Configure well-known CCN endpoints by name (e.g. --endpoint mainnet) instead of passing full URLs.
Configurable HTTP timeouts (#114)
- AlephClientBuilder now exposes connect_timeout() and request_timeout() for fine-grained control over HTTP timeouts.
Multi-key aggregate fetch (#101)
- Fetch aggregates for multiple keys in a single request.
CLI improvements
- CLI has been restructured into per-command modules for maintainability (#99).
- Package managers: install via brew install aleph-im/tap/aleph (#118) or from the APT repository (#117).
Bug Fixes
- heph: Use item_content for API response content field (#115).
- heph: Resolve file size from FileStore when store metadata omits size (#95).
- types: Skip serializing None fields instead of emitting null (#98).
- cli: Resolve --chain argument name clash in authorization add (#110).
- cli: Use block_in_place for Ledger signing to avoid nested runtime panic (#116).
What's Changed
- deps: use memsizes crate by @odesenfans in #76
- chore: bump to memsizes 1.0 by @odesenfans in #77
- feature: do not hardcode the corechannel address by @odesenfans in #79
- feat: add Account trait with EVM and Solana signing by @odesenfans in #78
- feat: typed message builders for POST, AGGREGATE, and FORGET by @odesenfans in #80
- feat: add corechannel operations SDK module by @odesenfans in #83
- feat: add CLI commands for creating posts, aggregates, and forget messages by @odesenfans in #82
- feat: add heph, a lightweight local Aleph CCN for testing by @odesenfans in #84
- feat: add upload_to_storage and upload_to_ipfs to AlephStorageClient by @odesenfans in #81
- fix: release pipeline for heph was broken by @odesenfans in #85
- feat: add heph-based integration tests to CI by @odesenfans in #86
- feat(cli): add node subcommands for corechannel operations by @odesenfans in #87
- feat: increase inline content size limit to 200kB by @odesenfans in #88
- feat: add submit_message to AlephMessageClient for full message upload support by @odesenfans in #89
- internal: add Justfile for common development tasks by @odesenfans in #90
- feat: add auto-paginating iterators for messages and posts by @odesenfans in #93
- feat: add StoreBuilder and streaming file upload with STORE message support by @odesenfans in #92
- feat(cli): add file upload subcommand by @odesenfans in #94
- feat: add ProgramBuilder and InstanceBuilder for creating PROGRAM and INSTANCE messages by @odesenfans in #91
- fix(heph): resolve file size from FileStore when store metadata omits size by @odesenfans in #95
- feat(cli): add file download subcommand with hash, message-hash, and ref lookup by @odesenfans in #96
- feat(cli): add instance create subcommand for VM deployments by @odesenfans in #97
- fix(types): skip serializing None fields instead of emitting null by @odesenfans in #98
- refactor(cli): split main.rs into per-command modules by @odesenfans in #99
- feat(cli): add account management with OS keychain storage by @odesenfans in #100
- feat(sdk): add multi-key aggregate fetch by @odesenfans in #101
- feat: add authorization management system (types, SDK, CLI) by @odesenfans in #102
- feat: add amend action for corechan node operations by @odesenfans in #103
- feat(heph): auto-generate corechannel aggregate from corechan-operati… by @odesenfans in #104
- feat(sdk): add CRN VM control client by @odesenfans in #105
- feat(cli): add CRN VM control commands by @odesenfans in #106
- feat(cli): add node list command by @odesenfans in #109
- feat(cli): add Ledger hardware wallet support by @odesenfans in #107
- feat(cli): add account balance display and balance command by @odesenfans in #108
- fix(cli): resolve --chain argument name clash in authorization add by @odesenfans in #110
- feat: add named CCN endpoint configuration by @odesenfans in #112
- feat: add on_behalf_of support for delegated message signing by @odesenfans in #111
- feat(sdk): add configurable HTTP timeouts to AlephClient by @odesenfans in #114
- fix(cli): use block_in_place for ledger signing to avoid nested runtime panic by @odesenfans in #116
- feat(cli): add APT packaging and repository workflow by @odesenfans in #117
- fix(heph): use item_content for API response content field by @odesenfans in #115
- feat(brew): add Homebrew tap packaging and release workflow by @odesenfans in #118
- fix(ci): upload release assets sequentially to avoid parallel upload race by @odesenfans in #121
Full Changelog: v0.7.1...v0.8.0
✅ Published to crates.io