hopper-framework 0.1.0

Zero-copy state framework for Solana. Typed account architecture, phased execution, validation graphs, zero-copy collections, layout evolution, and cross-program interfaces. Built on Hopper Native. no_std, no_alloc, no proc macros required.
Documentation
[workspace]

# Framework-internal crates live in this workspace, matching the

# Quasar-style "one repo per coherent product" model. The former

# sister repos were folded back with subtree history preserved.

members = [

    ".",

    "crates/hopper-native",

    "crates/hopper-runtime",

    "crates/hopper-core",

    "crates/hopper-macros",

    "crates/hopper-macros-proc",

    "crates/hopper-system",

    "crates/hopper-schema",

    "crates/hopper-solana",

    "crates/hopper-spl/hopper-token",

    "crates/hopper-spl/hopper-token-2022",

    "crates/hopper-spl/hopper-associated-token",

    "crates/hopper-spl/hopper-metaplex",

    "crates/hopper-finance",

    "crates/hopper-lending",

    "crates/hopper-staking",

    "crates/hopper-vesting",

    "crates/hopper-distribute",

    "crates/hopper-multisig",

    "crates/hopper-memo",

    "crates/hopper-anchor",

    "examples/hopper-vault",

    "examples/hopper-parity-vault",

    "examples/hopper-escrow",

    "examples/hopper-showcase",

    "examples/hopper-treasury",

    "examples/hopper-registry",

    "examples/hopper-migration",

    "examples/hopper-virtual-state",

    "examples/hopper-token-2022-ata",

    "examples/hopper-token-2022-vault",

    "examples/hopper-token-2022-transfer-hook",

    "examples/hopper-nft-mint",

    "examples/hopper-proc-vault",

    "examples/hopper-policy-vault",

    "examples/cross-program-read/program-a",

    "examples/cross-program-read/program-b",

    "tests/hopper-trybuild",

    "crates/hopper-manager",

    "crates/hopper-sdk",

    "tools/hopper-cli",

]

resolver = "2"



[workspace.lints.rust]

unexpected_cfgs = { level = "allow", check-cfg = [

    'cfg(target_os, values("solana"))',

    'cfg(target_arch, values("bpf"))',

] }



[workspace.dependencies]

pinocchio = { version = "0.10", features = ["cpi", "copy"] }

pinocchio-system = "0.5"

pinocchio-token = "0.5"

five8_const = "0.1"

sha2-const-stable = "0.1"

hopper-native = { path = "crates/hopper-native", version = "0.1.0", default-features = false }

hopper-runtime = { path = "crates/hopper-runtime", version = "0.1.0", default-features = false }

hopper-core = { path = "crates/hopper-core", version = "0.1.0", default-features = false }

hopper-macros = { path = "crates/hopper-macros", version = "0.1.0", default-features = false }

hopper-macros-proc = { path = "crates/hopper-macros-proc", version = "0.1.0" }

hopper = { path = ".", package = "hopper-framework", version = "0.1.0" }

hopper-system = { path = "crates/hopper-system", version = "0.1.0", default-features = false }

hopper-schema = { path = "crates/hopper-schema", version = "0.1.0", default-features = false }

hopper-solana = { path = "crates/hopper-solana", version = "0.1.0", default-features = false }

hopper-token = { path = "crates/hopper-spl/hopper-token", version = "0.1.0", default-features = false }

hopper-token-2022 = { path = "crates/hopper-spl/hopper-token-2022", version = "0.1.0", default-features = false }

hopper-associated-token = { path = "crates/hopper-spl/hopper-associated-token", version = "0.1.0", default-features = false }

hopper-metaplex = { path = "crates/hopper-spl/hopper-metaplex", version = "0.1.0", default-features = false }

hopper-finance = { path = "crates/hopper-finance", version = "0.1.0" }

hopper-lending = { path = "crates/hopper-lending", version = "0.1.0" }

hopper-staking = { path = "crates/hopper-staking", version = "0.1.0" }

hopper-vesting = { path = "crates/hopper-vesting", version = "0.1.0" }

hopper-distribute = { path = "crates/hopper-distribute", version = "0.1.0" }

hopper-multisig = { path = "crates/hopper-multisig", version = "0.1.0" }

hopper-memo = { path = "crates/hopper-memo", version = "0.1.0", default-features = false }

hopper-anchor = { path = "crates/hopper-anchor", version = "0.1.0" }

hopper-manager = { path = "crates/hopper-manager", version = "0.1.0" }

hopper-sdk = { path = "crates/hopper-sdk", version = "0.1.0" }



[package]

name = "hopper-framework"

version = "0.1.0"

edition = "2021"

license = "MIT OR Apache-2.0"

authors = ["BluefootLabs <contact@bluefootlabs.com>", "MoonManQuark"]

description = "Zero-copy state framework for Solana. Typed account architecture, phased execution, validation graphs, zero-copy collections, layout evolution, and cross-program interfaces. Built on Hopper Native. no_std, no_alloc, no proc macros required."

repository = "https://github.com/BluefootLabs/Hopper-Solana-Zero-copy-State-Framework"

homepage = "https://hopperzero.dev"

documentation = "https://docs.rs/crate/hopper-framework/0.1.0"

readme = "README.md"

keywords = ["solana", "zero-copy", "framework", "state", "no-std"]

categories = ["no-std", "embedded"]



[lib]

name = "hopper"



[dependencies]

hopper-runtime = { workspace = true }

sha2-const-stable = { workspace = true }

hopper-core = { workspace = true }

hopper-system = { workspace = true }

hopper-token = { workspace = true }

hopper-token-2022 = { workspace = true }

hopper-associated-token = { workspace = true }

hopper-memo = { workspace = true, default-features = false }

hopper-metaplex = { workspace = true, optional = true }

hopper-macros = { workspace = true }

hopper-schema = { path = "crates/hopper-schema", version = "0.1.0", default-features = false }

hopper-solana = { path = "crates/hopper-solana", version = "0.1.0", default-features = false }

hopper-macros-proc = { workspace = true, optional = true }



[dev-dependencies]

trybuild = "1"



[features]

default = ["hopper-native-backend", "advanced", "collections"]

proc-macros = ["hopper-macros-proc"]



# Metaplex Token Metadata builders (NFT mint, master edition, metadata

# update). Optional because not every Hopper program touches Metaplex

# and the crate adds compile time; opt in with `--features metaplex`.

metaplex = ["dep:hopper-metaplex"]

legacy-token-instructions = [

    "hopper-token/legacy-token-instructions",

    "hopper-solana/legacy-token-instructions",

]



# ── Advanced subsystems (forwarded to hopper-core) ────────────────

advanced = ["hopper-core/advanced"]

frame = ["hopper-core/frame"]

receipt = ["hopper-core/receipt"]

policy = ["hopper-core/policy"]

graph = ["hopper-core/graph"]

migrate = ["hopper-core/migrate"]

virtual-state = ["hopper-core/virtual-state"]

diff = ["hopper-core/diff"]

explain = ["hopper-core/explain"]

collections = ["hopper-core/collections"]



hopper-native-backend = [

    "hopper-runtime/hopper-native-backend",

    "hopper-core/hopper-native-backend",

    "hopper-system/hopper-native-backend",

    "hopper-token/hopper-native-backend",

    "hopper-token-2022/hopper-native-backend",

    "hopper-associated-token/hopper-native-backend",

    "hopper-memo/hopper-native-backend",

    "hopper-metaplex?/hopper-native-backend",  

    "hopper-macros/hopper-native-backend",

    "hopper-schema/hopper-native-backend",

    "hopper-solana/hopper-native-backend",

]

legacy-pinocchio-compat = [

    "hopper-runtime/legacy-pinocchio-compat",

    "hopper-core/legacy-pinocchio-compat",

    "hopper-system/legacy-pinocchio-compat",

    "hopper-token/legacy-pinocchio-compat",

    "hopper-token-2022/legacy-pinocchio-compat",

    "hopper-associated-token/legacy-pinocchio-compat",

    "hopper-memo/legacy-pinocchio-compat",

    "hopper-metaplex?/legacy-pinocchio-compat",

    "hopper-macros/legacy-pinocchio-compat",

    "hopper-schema/legacy-pinocchio-compat",

    "hopper-solana/legacy-pinocchio-compat",

]

solana-program-backend = [

    "hopper-runtime/solana-program-backend",

    "hopper-core/solana-program-backend",

    "hopper-system/solana-program-backend",

    "hopper-token/solana-program-backend",

    "hopper-token-2022/solana-program-backend",

    "hopper-associated-token/solana-program-backend",

    "hopper-memo/solana-program-backend",

    "hopper-metaplex?/solana-program-backend",

    "hopper-macros/solana-program-backend",

    "hopper-schema/solana-program-backend",

    "hopper-solana/solana-program-backend",

]

cu-trace = ["hopper-runtime/cu-trace"]



[lints.rust]

unexpected_cfgs = { level = "allow", check-cfg = [

    'cfg(target_os, values("solana"))',

    'cfg(feature, values("frame", "receipt", "policy", "graph", "migrate", "virtual-state", "diff", "explain", "advanced"))',

] }