/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.

Dependencies

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

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

Build

You can build the program by running:

$ /path/to/your/zig build

Deploy

With the Solana tools, run:

$ solana program deploy zig-out/lib/helloworld.so
Program Id: <YOUR_PROGRAM_ADDRESS>

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.