11# Program Examples
22
3- ## Onchain program examples for ⚓ Anchor, 🤥 Pinocchio, 💫 Quasar , and 🦀 Native Rust.
3+ ## Onchain program examples for ⚓ Anchor, 💫 Quasar, 🤥 Pinocchio , and 🦀 Native Rust.
44
5- [ ![ Anchor] ( https://github.com/solana-developers/program-examples/actions/workflows/anchor.yml/badge.svg?event=schedule )] ( https://github.com/solana-developers/program-examples/actions/workflows/anchor.yml ) [ ![ Pinocchio] ( https://github.com/solana-developers/program-examples/actions/workflows/solana-pinocchio.yml/badge.svg?event=schedule )] ( https://github.com/solana-developers/program-examples/actions/workflows/solana-pinocchio.yml ) [ ![ Native] ( https://github.com/solana-developers/program-examples/actions/workflows/solana-native.yml/badge.svg?event=schedule )] ( https://github.com/solana-developers/program-examples/actions/workflows/solana-native.yml )
5+ [ ![ Anchor] ( https://github.com/solana-developers/program-examples/actions/workflows/anchor.yml/badge.svg?event=schedule )] ( https://github.com/solana-developers/program-examples/actions/workflows/anchor.yml ) [ ![ Quasar ] ( https://github.com/solana-developers/program-examples/actions/workflows/solana-quasar.yml/badge.svg?event=schedule )] ( https://github.com/solana-developers/program-examples/actions/workflows/solana-quasar.yml ) [ ![ Pinocchio] ( https://github.com/solana-developers/program-examples/actions/workflows/solana-pinocchio.yml/badge.svg?event=schedule )] ( https://github.com/solana-developers/program-examples/actions/workflows/solana-pinocchio.yml ) [ ![ Native] ( https://github.com/solana-developers/program-examples/actions/workflows/solana-native.yml/badge.svg?event=schedule )] ( https://github.com/solana-developers/program-examples/actions/workflows/solana-native.yml )
66
77This repo contains Solana onchain programs (referred to as 'Smart Contracts' in other blockchains).
88
@@ -18,11 +18,11 @@ Each folder includes examples for one or more of the following:
1818 Use ` anchor build ` and ` anchor deploy ` to build and deploy the program.
1919 Tests should be executed using ` pnpm test ` as defined in the ` Anchor.toml ` scripts section.
2020
21- - ` pinocchio ` - Written using [ Pinocchio ] ( https://github.com/febo/pinocchio ) , a zero-copy, zero-allocation library for Solana programs.
21+ - ` quasar ` - Written using [ Quasar ] ( https://github.com/blueshift-gg/quasar ) , a zero-copy, zero-allocation ` no_std ` framework for Solana programs with Anchor-compatible ergonomics .
2222 Build and test commands are the same as native examples.
2323 Run ` pnpm test ` to execute tests.
2424
25- - ` quasar ` - Written using [ Quasar ] ( https://github.com/blueshift-gg/quasar ) , a zero-copy, zero-allocation ` no_std ` framework for Solana programs with Anchor-compatible ergonomics .
25+ - ` pinocchio ` - Written using [ Pinocchio ] ( https://github.com/febo/pinocchio ) , a zero-copy, zero-allocation library for Solana programs.
2626 Build and test commands are the same as native examples.
2727 Run ` pnpm test ` to execute tests.
2828
@@ -39,43 +39,43 @@ Each folder includes examples for one or more of the following:
3939
4040[ Hello World on Solana! A minimal program that logs a greeting.] ( ./basics/hello-solana/README.md )
4141
42- [ anchor] ( ./basics/hello-solana/anchor ) [ pinocchio ] ( ./basics/hello-solana/pinocchio ) [ quasar ] ( ./basics/hello-solana/quasar ) [ native] ( ./basics/hello-solana/native )
42+ [ anchor] ( ./basics/hello-solana/anchor ) [ quasar ] ( ./basics/hello-solana/quasar ) [ pinocchio ] ( ./basics/hello-solana/pinocchio ) [ native] ( ./basics/hello-solana/native )
4343
4444### Account-data
4545
4646Store and retrieve data using Solana accounts.
4747
48- [ anchor] ( ./basics/account-data/anchor ) [ pinocchio ] ( ./basics/account-data/pinocchio ) [ quasar ] ( ./basics/account-data/quasar ) [ native] ( ./basics/account-data/native )
48+ [ anchor] ( ./basics/account-data/anchor ) [ quasar ] ( ./basics/account-data/quasar ) [ pinocchio ] ( ./basics/account-data/pinocchio ) [ native] ( ./basics/account-data/native )
4949
5050### Storing global state - Counter
5151
5252[ Use a PDA to store global state, making a counter that increments when called.] ( ./basics/counter/README.md )
5353
54- [ anchor] ( ./basics/counter/anchor ) [ pinocchio ] ( ./basics/counter/pinocchio ) [ quasar ] ( ./basics/counter/quasar ) [ native] ( ./basics/counter/native )
54+ [ anchor] ( ./basics/counter/anchor ) [ quasar ] ( ./basics/counter/quasar ) [ pinocchio ] ( ./basics/counter/pinocchio ) [ native] ( ./basics/counter/native )
5555
5656### Saving per-user state - Favorites
5757
5858Save and update per-user state on the blockchain, ensuring users can only update their own information.
5959
60- [ anchor] ( ./basics/favorites/anchor ) [ pinocchio ] ( ./basics/favorites/pinocchio ) [ quasar ] ( ./basics/favorites/quasar ) [ native] ( ./basics/favorites/native )
60+ [ anchor] ( ./basics/favorites/anchor ) [ quasar ] ( ./basics/favorites/quasar ) [ pinocchio ] ( ./basics/favorites/pinocchio ) [ native] ( ./basics/favorites/native )
6161
6262### Checking Instruction Accounts
6363
6464[ Check that the accounts provided in incoming instructions meet particular criteria.] ( ./basics/checking-accounts/README.md )
6565
66- [ anchor] ( ./basics/checking-accounts/anchor ) [ pinocchio ] ( ./basics/checking-accounts/pinocchio ) [ quasar ] ( ./basics/checking-accounts/quasar ) [ native] ( ./basics/checking-accounts/native )
66+ [ anchor] ( ./basics/checking-accounts/anchor ) [ quasar ] ( ./basics/checking-accounts/quasar ) [ pinocchio ] ( ./basics/checking-accounts/pinocchio ) [ native] ( ./basics/checking-accounts/native )
6767
6868### Closing Accounts
6969
7070Close an account and get the Lamports back.
7171
72- [ anchor] ( ./basics/close-account/anchor ) [ pinocchio ] ( ./basics/close-account/pinocchio ) [ quasar ] ( ./basics/close-account/quasar ) [ native] ( ./basics/close-account/native )
72+ [ anchor] ( ./basics/close-account/anchor ) [ quasar ] ( ./basics/close-account/quasar ) [ pinocchio ] ( ./basics/close-account/pinocchio ) [ native] ( ./basics/close-account/native )
7373
7474### Creating Accounts
7575
7676[ Make new accounts on the blockchain.] ( ./basics/create-account/README.md )
7777
78- [ anchor] ( ./basics/create-account/anchor ) [ pinocchio ] ( ./basics/create-account/pinocchio ) [ quasar ] ( ./basics/create-account/quasar ) [ native] ( ./basics/create-account/native )
78+ [ anchor] ( ./basics/create-account/anchor ) [ quasar ] ( ./basics/create-account/quasar ) [ pinocchio ] ( ./basics/create-account/pinocchio ) [ native] ( ./basics/create-account/native )
7979
8080### Cross program invocations
8181
@@ -87,31 +87,31 @@ Close an account and get the Lamports back.
8787
8888[ Use a PDA to pay the rent for the creation of a new account.] ( ./basics/pda-rent-payer/README.md )
8989
90- [ anchor] ( ./basics/pda-rent-payer/anchor ) [ pinocchio ] ( ./basics/pda-rent-payer/pinocchio ) [ quasar ] ( ./basics/pda-rent-payer/quasar ) [ native] ( ./basics/pda-rent-payer/native )
90+ [ anchor] ( ./basics/pda-rent-payer/anchor ) [ quasar ] ( ./basics/pda-rent-payer/quasar ) [ pinocchio ] ( ./basics/pda-rent-payer/pinocchio ) [ native] ( ./basics/pda-rent-payer/native )
9191
9292### Processing instructions
9393
9494[ Add parameters to an instruction handler and use them.] ( ./basics/processing-instructions/README.md )
9595
96- [ anchor] ( ./basics/processing-instructions/anchor ) [ pinocchio ] ( ./basics/processing-instructions/pinocchio ) [ quasar ] ( ./basics/processing-instructions/quasar ) [ native] ( ./basics/processing-instructions/native )
96+ [ anchor] ( ./basics/processing-instructions/anchor ) [ quasar ] ( ./basics/processing-instructions/quasar ) [ pinocchio ] ( ./basics/processing-instructions/pinocchio ) [ native] ( ./basics/processing-instructions/native )
9797
9898### Storing date in program derived addresses
9999
100100Store and retrieve state in Solana.
101101
102- [ anchor] ( ./basics/program-derived-addresses/anchor ) [ pinocchio ] ( ./basics/program-derived-addresses/pinocchio ) [ quasar ] ( ./basics/program-derived-addresses/quasar ) [ native] ( ./basics/program-derived-addresses/native )
102+ [ anchor] ( ./basics/program-derived-addresses/anchor ) [ quasar ] ( ./basics/program-derived-addresses/quasar ) [ pinocchio ] ( ./basics/program-derived-addresses/pinocchio ) [ native] ( ./basics/program-derived-addresses/native )
103103
104104### Handling accounts that expand in size
105105
106106How to store state that changes size in Solana.
107107
108- [ anchor] ( ./basics/realloc/anchor ) [ pinocchio ] ( ./basics/realloc/pinocchio ) [ quasar ] ( ./basics/realloc/quasar ) [ native] ( ./basics/realloc/native )
108+ [ anchor] ( ./basics/realloc/anchor ) [ quasar ] ( ./basics/realloc/quasar ) [ pinocchio ] ( ./basics/realloc/pinocchio ) [ native] ( ./basics/realloc/native )
109109
110110### Calculating account size to determine rent
111111
112112[ Determine the necessary minimum rent by calculating an account's size.] ( ./basics/rent/README.md )
113113
114- [ anchor] ( ./basics/rent/anchor ) [ pinocchio ] ( ./basics/rent/pinocchio ) [ quasar ] ( ./basics/rent/quasar ) [ native] ( ./basics/rent/native )
114+ [ anchor] ( ./basics/rent/anchor ) [ quasar ] ( ./basics/rent/quasar ) [ pinocchio ] ( ./basics/rent/pinocchio ) [ native] ( ./basics/rent/native )
115115
116116### Laying out larger programs
117117
@@ -123,7 +123,7 @@ How to store state that changes size in Solana.
123123
124124[ Send SOL between two accounts.] ( ./basics/transfer-sol/README.md )
125125
126- [ anchor] ( ./basics/transfer-sol/anchor ) [ pinocchio ] ( ./basics/transfer-sol/pinocchio ) [ quasar ] ( ./basics/transfer-sol/quasar ) [ native] ( ./basics/transfer-sol/native )
126+ [ anchor] ( ./basics/transfer-sol/anchor ) [ quasar ] ( ./basics/transfer-sol/quasar ) [ pinocchio ] ( ./basics/transfer-sol/pinocchio ) [ native] ( ./basics/transfer-sol/native )
127127## Tokens
128128### Creating tokens
129129
0 commit comments