Libraries & Dependencies

Go module dependencies, versions, and their purposes.

The Sankofa Engine is written in Go and requires Go 1.25 or later. Below are all direct dependencies from go.mod, grouped by category.

HTTP Framework

PackageVersionPurpose
github.com/gofiber/fiber/v3v3.1.0HTTP framework for the REST API

Database

PackageVersionPurpose
github.com/gocql/gocqlv1.7.0ScyllaDB/Cassandra driver
github.com/jackc/pgx/v5v5.9.1PostgreSQL driver with connection pooling

Messaging

PackageVersionPurpose
github.com/nats-io/nats.gov1.49.0NATS client for pub/sub and RPC
github.com/nats-io/nats-server/v2v2.12.6Embedded NATS server for testing

Authentication and Authorization

PackageVersionPurpose
github.com/golang-jwt/jwt/v5v5.3.1JWT token generation and validation
github.com/casbin/casbin/v2v2.135.0Role-based access control (RBAC)

Cryptography

PackageVersionPurpose
golang.org/x/cryptov0.49.0Cryptographic primitives

Cloud Services

PackageVersionPurpose
github.com/aws/aws-sdk-go-v2/configv1.29.5AWS SDK configuration
github.com/aws/aws-sdk-go-v2/service/kmsv1.43.0AWS KMS for key management

Utilities

PackageVersionPurpose
github.com/google/uuidv1.6.0UUID generation
github.com/shirou/gopsutil/v3v3.24.5System metrics collection
golang.org/x/timev0.15.0Rate limiting
gopkg.in/yaml.v3v3.0.1YAML configuration parsing

Testing

PackageVersionPurpose
github.com/stretchr/testifyv1.11.1Testing assertions and mocks

Dependency Management

The project uses Go modules (go.mod / go.sum) for dependency management. To update dependencies:

# Update all dependencies
go get -u ./...
go mod tidy

# Update a specific dependency
go get -u github.com/gofiber/fiber/v3@latest
go mod tidy