hopper-native 0.1.0

Hopper's sovereign raw backend for Solana. Zero-copy account access, direct syscall layer, CPI infrastructure, PDA helpers, and entrypoint glue. no_std, no_alloc, no external runtime dependencies.
Documentation
[package]
name = "hopper-native"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
authors = ["BluefootLabs <contact@bluefootlabs.com>", "MoonManQuark"]
description = "Hopper's sovereign raw backend for Solana. Zero-copy account access, direct syscall layer, CPI infrastructure, PDA helpers, and entrypoint glue. no_std, no_alloc, no external runtime dependencies."
repository = "https://github.com/BluefootLabs/Hopper-Solana-Zero-copy-State-Framework"
homepage = "https://hopperzero.dev"
documentation = "https://docs.rs/hopper-native"
readme = "README.md"
keywords = ["solana", "zero-copy", "runtime", "no-std", "syscall"]
categories = ["no-std", "embedded"]

[lib]
name = "hopper_native"

[features]
# `bytemuck` feature turns on the field-level Pod/Zeroable proof used
# by `#[hopper::state]` and `#[hopper::pod]` to mechanically verify
# that every field of a layout is itself zero-copy-safe. This is the
# Hopper Safety Audit's Must-Fix #5 ("enforce field-level Pod proof
# at macro expansion time"). Default-on because the safety story is
# Hopper's headline promise; programs wanting zero dependencies can
# disable it and fall back to the unsafe-impl-yourself path.
default = ["cpi", "bytemuck", "legacy-projectable"]
cpi = []
copy = []
cu-trace = []
# Opt-in for `solana-define-syscall`'s `unstable-static-syscalls`.
# Saves 1-3 CU per syscall by replacing dynamic dispatch with direct
# calls. Off by default until the upstream feature stabilizes.
static-syscalls = []
bytemuck = ["dep:bytemuck"]
# `legacy-projectable` exposes the `Projectable` / `SafeProjectable`
# cross-program lens traits. The Hopper Safety Audit asked these be
# gated behind a feature and marked Tier-C so new code reaches for
# `Pod`-bounded helpers (`lens::read_field_pod`, `ZeroCopy`). Default
# on for backward compatibility; programs that never use the legacy
# cross-program projection path can disable it for a leaner surface.
legacy-projectable = []

[dependencies]
five8_const = { workspace = true }
# `bytemuck` is no_std, no_alloc, zero-dep at the leaf. It gives
# Hopper the field-level Pod proof the audit asked for: its derive
# emits a `const _: fn() = || { ... check every field ... };` that
# rejects padding, non-Pod fields, and non-aligned primitives at
# compile time.
bytemuck = { version = "1", default-features = false, features = ["derive", "min_const_generics"], optional = true }

[lints]
workspace = true