{"id":13544346,"url":"https://github.com/metaplex-foundation/shank","last_synced_at":"2025-05-15T05:07:00.536Z","repository":{"id":37083165,"uuid":"451535812","full_name":"metaplex-foundation/shank","owner":"metaplex-foundation","description":"Extracts IDL from Solana Rust contracts","archived":false,"fork":false,"pushed_at":"2025-04-28T20:38:57.000Z","size":618,"stargazers_count":163,"open_issues_count":17,"forks_count":33,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-28T21:42:44.596Z","etag":null,"topics":["blockchain","metaplex","nft","rust","solana"],"latest_commit_sha":null,"homepage":"https://docs.rs/crate/shank_macro/latest","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/metaplex-foundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-24T16:10:27.000Z","updated_at":"2025-04-28T20:39:02.000Z","dependencies_parsed_at":"2023-02-09T02:45:59.901Z","dependency_job_id":"d0aa205b-79ad-49d2-9dba-7a8885d1376c","html_url":"https://github.com/metaplex-foundation/shank","commit_stats":{"total_commits":54,"total_committers":3,"mean_commits":18.0,"dds":"0.16666666666666663","last_synced_commit":"bfd67bebe70056165725e8c7d2031879fb9c662f"},"previous_names":[],"tags_count":104,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metaplex-foundation%2Fshank","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metaplex-foundation%2Fshank/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metaplex-foundation%2Fshank/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metaplex-foundation%2Fshank/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/metaplex-foundation","download_url":"https://codeload.github.com/metaplex-foundation/shank/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254276447,"owners_count":22043867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","metaplex","nft","rust","solana"],"created_at":"2024-08-01T11:00:46.533Z","updated_at":"2025-05-15T05:06:55.512Z","avatar_url":"https://github.com/metaplex-foundation.png","language":"Rust","funding_links":[],"categories":["Developer Resources","Rust","Development Tools and Libraries","Code"],"sub_categories":["Dev Tooling","Development Frameworks and SDKs","Frameworks"],"readme":"# Shank [![Build+Test](https://github.com/metaplex-foundation/shank/actions/workflows/build+test.yml/badge.svg)](https://github.com/metaplex-foundation/shank/actions/workflows/build+test.yml)\n\nCollection of shank crates used to annotate Rust programs in order to extract IDL via the\nincluded CLI tool. This IDL is used by [solita](https://github.com/metaplex-foundation/solita) in order to generate program SDKs.\n\n![shank-logo](./shank/assets/shank-logo.gif)\n\n## Installation\n\nFor _usage_ and _installation_ see the [shank-cli Readme](./shank-cli/README.md).\n\n## Crates\n\n- [shank](./shank) top level crate to be installed and included in your library to add macro\n  annotations\n- [shank_cli](./shank-cli) the CLI tool that extracts IDL from a specified crate into a file\n- [shank-macro](./shank-macro) provides the _derive_ macros shank uses\n- [shank-macro-impl](./shank-macro-impl) implements and tests the _derive_ macros\n- [shank-idl](./shank-idl) processes files of a crate in order to discover _shank_ macros\n  annotations and convert annotated types into an [solita](https://github.com/metaplex-foundation/solita) compatible IDL\n- [shank-render](./shank-render) generates Rust `impl` blocks from specific annotations like\n  account `seeds` \n\n## Development\n\nFork the repo makes some changes and make sure that all is dandy by running `cargo test`. Then\nprovide a pull request.\n\nIf you are a contributor with access to publish to crates.io do the below in order to publish a\nnew version. NOTE that this only works from the _master_ branch and should be performed _after_\nmerging a PR into master.\n\n```sh\ncargo test \u0026\u0026 cargo release \u003cmajor|minor|patch\u003e\n```\n\nThe above runs all tests and dry-runs the release process. You should verify closely what it is\nabout to do and then re-run the release command as shown below.\n\n```sh\ncargo release \u003cmajor|minor|patch\u003e --execute\n```\n\n## LICENSE\n\nApache-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetaplex-foundation%2Fshank","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetaplex-foundation%2Fshank","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetaplex-foundation%2Fshank/lists"}