Skip to content

Standard Library

Haira includes a rich standard library. Only imported packages are included in compiled binaries (tree-shaking).

Core Modules

ModuleImportDescription
IOimport "io"Console I/O (println, print)
HTTPimport "http"HTTP client and server
JSONimport "json"JSON encode/decode
Stringimport "string"String manipulation
Mathimport "math"Math functions
Timeimport "time"Time and date
Envimport "env"Environment variables
FSimport "fs"File system operations
Regeximport "regex"Regular expressions
Convimport "conv"Type conversions
Arrayimport "array"Array/list utilities
Mapsimport "maps"Map utilities

Extended Modules

These are separate packages, tree-shaken at compile time:

ModuleImportDescription
Postgresimport "postgres"PostgreSQL client
Excelimport "excel"Excel file operations
Vectorimport "vector"Vector embeddings
Slackimport "slack"Slack integration
GitHubimport "github"GitHub API
GitLabimport "gitlab"GitLab API
Algoliaimport "algolia"Algolia search client
Meilisearchimport "meilisearch"Meilisearch search client
SQLite(auto-included)Session storage for workflows
D1(auto-included for Workers)Cloudflare D1 store backend
Langfuseimport "langfuse"LLM observability
Agentsimport "agents"Pre-built agent templates
Authimport "auth"API key resolution
WebSearchimport "websearch"Web search integration
Healthcheckimport "healthcheck"HTTP health check endpoints

Core Modules (continued)

ModuleImportDescription
OSimport "os"OS primitives and command execution
Uploadimport "upload"File upload handling
Observeimport "observe"Observability and cost monitoring
MCPimport "mcp"MCP server/client

Built-in Functions

Available without import:

FunctionDescription
env(name)Read environment variable
len(x)Length of string, list, or map
append(list, item)Append to list
print(args...)Print without newline
println(args...)Print with newline

Automatic Inclusions

  • SQLite is automatically included when workflows or a server are detected
  • Langfuse requires explicit import "langfuse" and registration via observe.use(langfuse.exporter(...))
  • Transitive dependencies are resolved automatically (e.g., vector pulls in postgres)

Released under the Apache-2.0 License.