/solana-helloworld-zig

A simple hello world program for Solana in Zig

Primary LanguageRustApache License 2.0Apache-2.0

solana-helloworld-zig

A simple hello world program for Solana in Zig.

Getting started

Compiler

First, you need a zig compiler built with Solana's LLVM fork. See the README of solana-zig-bootstrap on how to build it, or you can download it from the GitHub releases page.

There is also a helper script which will install it to the current directory:

./install-solana-zig.sh

Dependencies

This project opts for the zig package manager and the package declared at solana-program-sdk-zig.

zig fetch --save https://github.com/joncinque/base58-zig/archive/refs/tags/v0.13.3.tar.gz
zig fetch --save https://github.com/joncinque/solana-sdk-zig/archive/refs/tags/v0.13.1.tar.gz

Build

You can build the program by running:

./solana-zig/zig build

Deploy

With the Solana tools, run:

solana program deploy zig-out/lib/helloworld.so

Command-line Interface

The repo has a simple CLI to send instructions to the program:

cd cli
./test.sh

The CLI requires a Rust compiler to run, and the test script requires the Solana CLI to startup a test validator.

Program Tests

There are also integration tests run against the Agave runtime using the solana-program-test crate.

You can run these tests using the test.sh script:

cd program-test/
./test.sh

These tests require a Rust compiler along with the solana-zig compiler.