4 releases
new 0.1.3 | Jan 23, 2025 |
---|---|
0.1.2 | Nov 22, 2024 |
0.1.1 | Oct 22, 2024 |
0.1.0 | Sep 28, 2024 |
#29 in Magic Beans
286 downloads per month
Used in drift-rs
30KB
666 lines
drfit-idl-gen
⚠️ for drift-rs there's no need to run this manually. The build.rs
script will trigger it.
Generates rust anchor structs from IDL json This is implemented rather than another project for a couple reasons:
#[repr(C)]
other IDL generation tools do not provide the ability to market structs withrepr(C)
which is necessary for ffi functionality throught the drift-rs project.- does not rely on anchor vendored solana crates. anchor is pinned to older versions of the solana crates. drift-rs seeks to be readily upgradable to use lastest solana crates.
Dev Note ⚠️
- An important assumption in this code is that the underlying types (serialization and deserialization) does not change among solana crate versions i.e
solana_sdk_1.16::Pubkey == solana_sdk_2.x::Pubkey == anchor_lang::solana_sdk::Pubkey
this allows the generated IDL code to ignore the anchor version of crates.
lib.rs
:
Auto-generated IDL types, manual edits do not persist (see crates/drift-idl-gen
)
IDL instruction types IDL types IDL Account types IDL error types IDL event types
Dependencies
~1–2MB
~44K SLoC