Installation

Install Sia for TypeScript, Go, Python, or C++ and verify your setup.

Install

Install @timeleap/sia using your preferred package manager:

npm install @timeleap/sia

Requirements:

  • TypeScript 5.0+ (recommended) or JavaScript ES2020+
  • ESM only ("type": "module" in package.json): CommonJS is not supported
  • Node.js, Bun, Deno, or modern browsers
go get github.com/TimeleapLabs/go-sia/v2

Requirements:

  • Go 1.21+ (uses generics for typed arrays)
pip install timeleap-sia

Requirements:

  • Python 3.8+

Add Sia as a CMake subdirectory:

add_subdirectory(sia)
target_link_libraries(your_target PRIVATE sia)

For BigInt support using Boost.Multiprecision:

cmake -DSIA_USE_BOOST=ON ..

Requirements:

  • C++17 or later
  • CMake 3.14+
  • Boost (optional, for BigInt support)

Import

import { Sia } from "@timeleap/sia";
There is no default export. Always use the named import { Sia }.
import sia "github.com/TimeleapLabs/go-sia/v2/pkg"
from sia import Sia
#include <sia/sia.hpp>

For array support:

#include <sia/array.hpp>

Verify Installation

Create a quick test to verify everything is working:

import { Sia } from "@timeleap/sia";

const sia = new Sia();
sia.addUInt8(42);
sia.seek(0);
console.log(sia.readUInt8()); // 42
package main

import (
    "fmt"
    sia "github.com/TimeleapLabs/go-sia/v2/pkg"
)

func main() {
    s := sia.New()
    s.AddUInt8(42)
    s.Seek(0)
    fmt.Println(s.ReadUInt8()) // 42
}
from sia import Sia

s = Sia()
s.add_uint8(42)
s.seek(0)
print(s.read_uint8())  # 42
#include <sia/sia.hpp>
#include <iostream>

int main() {
    auto s = sia::New();
    s->AddUInt8(42);
    s->Seek(0);
    std::cout << (int)s->ReadUInt8() << std::endl; // 42
    return 0;
}

If you see 42 printed, you're ready to go.

Next Steps

Quick Start

Serialize and deserialize your first message.

Core Concepts

How Sia manages buffers, offsets, and memory.

Serialization Guide

Explore the full range of data types and serialization techniques.