MCPcopy Index your code
hub / github.com/exotic-markets-labs/typhoon

github.com/exotic-markets-labs/typhoon @v0.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.0 ↗ · + Follow
719 symbols 1,310 edges 191 files 20 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img height="250px" src="https://github.com/exotic-markets-labs/typhoon/raw/v0.3.0/assets/logo.png" />
<h1>Typhoon</h1>



    <strong>Solana Sealevel Framework</strong>






    <a href="https://github.com/exotic-markets-labs/typhoon/actions"><img alt="Build Status" src="https://img.shields.io/github/check-runs/exotic-markets-labs/typhoon/main?style=for-the-badge&logo=github" /></a>
    <a href="https://book.typhoon.so/"><img alt="Read the book" src="https://img.shields.io/badge/docs-read_the_book-blue?style=for-the-badge&logo=readthedocs&logoColor=ffffff" /></a>
    <a href="https://opensource.org/licenses/Apache-2.0"><img alt="License" src="https://img.shields.io/github/license/exotic-markets-labs/typhoon?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB3aWR0aD0iMjQuMDA4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjMuNjkyIiB2aWV3Qm94PSItNDk2MS45OCAtMTE2LjY2NSAyNC4wMDggMjMuNjkyIiBmaWxsPSJub25lIj48cGF0aCBkPSJNLTQ5MzguMTAwLC0xMDcuMzAwTC00OTQxLjY0MCwtMTE1LjE5MEwtNDk0MS42NDUsLTExNS4yMDBDLTQ5NDEuNjU3LC0xMTUuMjI2LC00OTQxLjY3MCwtMTE1LjI1MiwtNDk0MS42ODYsLTExNS4yNzZMLTQ5NDEuNzAwLC0xMTUuMjk0Qy00OTQxLjczNCwtMTE1LjM0MSwtNDk0MS43NzUsLTExNS4zODIsLTQ5NDEuODIyLC0xMTUuNDE2TC00OTQxLjgzNywtMTE1LjQyN0MtNDk0MS44NjIsLTExNS40NDQsLTQ5NDEuODg5LC0xMTUuNDU5LC00OTQxLjkxNywtMTE1LjQ3MUwtNDk0MS45NDEsLTExNS40ODBDLTQ5NDEuOTYzLC0xMTUuNDg4LC00OTQxLjk4NSwtMTE1LjQ5NSwtNDk0Mi4wMDgsLTExNS41MDBMLTQ5NDIuMDM2LC0xMTUuNTA3Qy00OTQyLjA2OCwtMTE1LjUxMywtNDk0Mi4xMDAsLTExNS41MTcsLTQ5NDIuMTMyLC0xMTUuNTE3TC00OTQ4Ljk4MiwtMTE1LjUxN0MtNDk1MC4wMDIsLTExNy4wMzcsLTQ5NTAuMDAyLC0xMTcuMDU3LC00OTUwLjk4MiwtMTE1LjUxN0wtNDk1Ny44NDIsLTExNS41MTdDLTQ5NTcuODc0LC0xMTUuNTE3LC00OTU3LjkwNiwtMTE1LjUxMywtNDk1Ny45MzgsLTExNS41MDdMLTQ5NTcuOTY2LC0xMTUuNTAwQy00OTU3Ljk4OSwtMTE1LjQ5NSwtNDk1OC4wMTEsLTExNS40ODgsLTQ5NTguMDMzLC0xMTUuNDgwTC00OTU4LjA1NywtMTE1LjQ3MEMtNDk1OC4wODUsLTExNS40NTgsLTQ5NTguMTEyLC0xMTUuNDQ0LC00OTU4LjEzNywtMTE1LjQyN0wtNDk1OC4xNTIsLTExNS40MTZDLTQ5NTguMTcyLC0xMTUuNDAyLC00OTU4LjE5MSwtMTE1LjM4NiwtNDk1OC4yMDksLTExNS4zNjlMLTQ5NTguMjI5LC0xMTUuMzQ5Qy00OTU4LjI0NSwtMTE1LjMzMiwtNDk1OC4yNjAsLTExNS4zMTMsLTQ5NTguMjc0LC0xMTUuMjk0TC00OTU4LjI4OCwtMTE1LjI3NkMtNDk1OC4zMDQsLTExNS4yNTIsLTQ5NTguMzE3LC0xMTUuMjI3LC00OTU4LjMyOSwtMTE1LjIwMUwtNDk1OC4zMzQsLTExNS4xOTFMLTQ5NTguMzM0LC0xMTUuMTkwTC00OTYxLjg4NCwtMTA3LjI4MEMtNDk2MS45NDYsLTEwNy4xOTEsLTQ5NjEuOTgwLC0xMDcuMDg1LC00OTYxLjk4MCwtMTA2Ljk3NkMtNDk2MS45ODAsLTEwNC42OTYsLTQ5NjAuMTIwLC0xMDIuODM2LC00OTU3Ljg0MCwtMTAyLjgzNkMtNDk1NS41NjAsLTEwMi44MzYsLTQ5NTMuNzAwLC0xMDQuNjk2LC00OTUzLjcwMCwtMTA2Ljk3NkMtNDk1My43MDAsLTEwNy4wODUsLTQ5NTMuNzM0LC0xMDcuMTkxLC00OTUzLjc5NiwtMTA3LjI4MEwtNDk1Ny4wNDYsLTExMy42NTBMLTQ5NTAuOTc2LC0xMTMuNjczTC00OTUwLjk3NiwtOTUuNDczQy00OTUzLjUyNiwtOTUuMTc5LC00OTU3Ljk4NiwtOTUuMDkyLC00OTU3Ljk3NiwtOTIuOTczTC00OTQxLjk3NiwtOTIuOTczQy00OTQxLjk3NiwtOTUuMDAzLC00OTQ2LjQ1NiwtOTUuMjQzLC00OTQ4Ljk3NiwtOTUuNDczTC00OTQ4Ljk3NiwtMTEzLjU3M0wtNDk0My4yODYsLTExMy41OTNMLTQ5NDYuMjA2LC0xMDcuMTAzQy00OTQ2LjIwNiwtMTA3LjEwMSwtNDk0Ni4yMDYsLTEwNy4xMDAsLTQ5NDYuMjA4LC0xMDcuMDk4TC00OTQ2LjIxNCwtMTA3LjA4MEMtNDk0Ni4yMjMsLTEwNy4wNTYsLTQ5NDYuMjMxLC0xMDcuMDMxLC00OTQ2LjIzNywtMTA3LjAwNUwtNDk0Ni4yNDIsLTEwNi45ODVDLTQ5NDYuMjQ4LC0xMDYuOTU1LC00OTQ2LjI1MSwtMTA2LjkyNCwtNDk0Ni4yNTIsLTEwNi44OTNMLTQ5NDYuMjUyLC0xMDYuODg1Qy00OTQ2LjI1MiwtMTA0LjYwNSwtNDk0NC4zOTIsLTEwMi43NDUsLTQ5NDIuMTEyLC0xMDIuNzQ1Qy00OTM5LjgzMiwtMTAyLjc0NSwtNDkzNy45NzIsLTEwNC42MDUsLTQ5MzcuOTcyLC0xMDYuODg1Qy00OTM3Ljk3MywtMTA3LjAwNiwtNDkzOC4wMTUsLTEwNy4xMjMsLTQ5MzguMTAwLC0xMDcuMzAwWloiIHN0eWxlPSJmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsiIGNsYXNzPSJmaWxscyIvPjwvc3ZnPg==&color=blueviolet" /></a>

🗒️ Note

  • Typhoon is in active development, so all APIs are subject to change.
  • This code is unaudited. Use at your own risk.

📦 Installation

To get started with Typhoon, you can use the CLI tool to scaffold and manage your projects.

CLI

Install the Typhoon CLI using Cargo:

cargo install --git https://github.com/exotic-markets-labs/typhoon typhoon-cli

Library

If you prefer to add Typhoon to an existing Rust project:

cargo add typhoon

🚀 Getting Started

Here’s a quick example to show how Typhoon simplifies Solana program development:

#![no_std]

use {
    bytemuck::{AnyBitPattern, NoUninit},
    typhoon::prelude::*,
};

program_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS");

nostd_panic_handler!();
no_allocator!();

#[context]
pub struct Init {
    pub payer: Mut<Signer>,
    #[constraint(
        init,
        payer = payer,
    )]
    pub counter: Mut<UncheckedSigner<Account<Counter>>>,
    pub system: Program<System>,
}

#[context]
pub struct CounterMut {
    pub counter: Mut<Account<Counter>>,
}

#[context]
pub struct Destination {
    pub destination: Mut<SystemAccount>,
}

entrypoint!();

pub const ROUTER: EntryFn = basic_router! {
    0 => initialize,
    1 => increment,
    2 => close,
};

pub fn initialize(_: Init) -> ProgramResult {
    Ok(())
}

pub fn increment(ctx: CounterMut) -> ProgramResult {
    ctx.counter.mut_data()?.count += 1;

    Ok(())
}

pub fn close(
    CounterMut { counter }: CounterMut,
    Destination { destination }: Destination,
) -> ProgramResult {
    counter.close(&destination)?;

    Ok(())
}

#[derive(NoUninit, AnyBitPattern, AccountState, Copy, Clone)]
#[repr(C)]
pub struct Counter {
    pub count: u64,
}

🛠️ CLI Usage

The Typhoon CLI helps you create and manage your projects.

New Project

typhoon new my-project --program counter

Add Program

typhoon add program token

Add Instruction

typhoon add handler --program counter increment

📦 Examples

Explore the examples directory for templates and use-case scenarios to kickstart your project.

📜 License

Typhoon is licensed under Apache 2.0.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Typhoon by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 257
Function 212
Class 188
Interface 32
Enum 30

Languages

Rust100%

Modules by API surface

crates/cpi-generator/src/idl.rs23 symbols
crates/cpi-generator/src/anchor/account.rs23 symbols
crates/context-macro/src/generators/account.rs21 symbols
crates/instruction-builder/src/mod_path.rs20 symbols
crates/accounts/src/lib.rs20 symbols
crates/context-macro/src/visitor.rs18 symbols
benches/program-bench/benches/programs/star-frame/src/lib.rs17 symbols
crates/syn/src/instruction.rs12 symbols
crates/idl-generator/tests/crate/src/lib.rs12 symbols
crates/context-macro/src/sorter.rs12 symbols
benches/program-bench/benches/programs/anchor/src/lib.rs12 symbols
crates/token/src/lib.rs11 symbols

For agents

$ claude mcp add typhoon \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page