Skip to content

Releases: murphsicles/nour

nour v1.0.3 — Transpiled to Zeta + Full Test Suite

Choose a tag to compare

@murphsicles murphsicles released this 21 May 00:30

🥜 nour v1.0.3 — Pure Zeta

What Changed

Everything. The entire Bitcoin SV toolkit has been transpiled from Rust to pure Zeta.

Before After
55 Rust files, 11,018 lines 52 Zeta files, 7,348 lines
Cargo.toml zorb.toml
Rust on main Zeta on main, Rust on rust branch
crates.io package zorbs.io package

What You Get

Module Size What it does
address 92 lines Base58 encode/decode (P2PKH, P2SH)
messages 1,847 lines 24 P2P message types (version, tx, block, inv, merkle...)
network 256 lines Network configs + DNS seed iteration
peer 549 lines TCP peer connections with message framing
script 2,491 lines Full BSV script evaluator — opcodes, stack, BIP-62, CHECKMULTISIG
transaction 533 lines P2PKH building, BIP-143 + legacy sighash
util 971 lines Bloom filters, varint, bits, SHA256d, Hash160, reactive
wallet 550 lines BIP-32 extended keys, BIP-39 mnemonics

Test Suite

3,185 lines of tests across 6 files covering all modules. Compiles to valid LLVM IR.

SIMD Note

Performance-critical paths leverage Zetans native SIMD via the dependency chain: @crypto/bsv58 (SIMD Base58), @crypto/bitcoin-hashes (SHA256/Hash160), @crypto/secp256k1 (ECDSA).

nour v1.0.2 — Padding fix, perf, bsv58 cleanup

Choose a tag to compare

@murphsicles murphsicles released this 20 May 22:29

v1.0.2

🐛 Bug Fix

  • Little-endian padding bug in encode_num() and encode_bigint() — padding byte was inserted at the wrong position (beginning of LE array instead of end). Fixed in b9c3895.

⚡ Performance

  • Rc-based interpreter stack — OP_DUP/OVER/PICK/TUCK now clone via atomic refcount increment instead of deep-copying up to 520B per operation. ~40 clone sites optimized.
  • Bloom filter: reuse Cursor — reduces allocs from O(num_hash_funcs) to O(1).
  • linked-hash-map → indexmap — actively maintained, faster hash map with predictable iteration order.

🔧 Maintenance

  • Removed unused base58 dependency (fully migrated to bsv58)
  • Full rustfmt + clippy pass — zero new warnings

nour v1.0.1 — Dependency audit, bsv58 replacement

Choose a tag to compare

@murphsicles murphsicles released this 19 May 23:48

Dependency Updates

  • bitcoin_hashes 0.17.0 → 0.20.0
  • rand 0.9.2 → 0.9.4
  • ripemd 0.1.3 → 0.2.0
  • criterion 0.7.0 → 0.8.2 (dev)

Changes

  • Replaced base58 with bsv58 (optimized BSV codec — SIMD x86/ARM)
  • Removed cargo-fuzz dev dependency (broken, no lib target)

Perf Audit (see prior analysis)

High-impact: VecDeque+Cow clone reduction in interpreter, BigInt→bytewise for bit ops, murmur3 reuse, pre-sized Vec allocations. Medium: linked-hash-map→indexmap, redundant SHA256d allocs.

nour1.0.0

Choose a tag to compare

@murphsicles murphsicles released this 03 Nov 05:37
e29af8b

Nour v1.0.0

Initial Release

The world's fastest and most efficient BSV primitives library for powering consensus ready applications.

Full Changelog: https://github.com/murphsicles/nour/commits/v1.0.0