Golem Distributed Cloud Platform

repository·main·Indexed 23 days ago

https://github.com/golemcloud/golem

A distributed cloud platform for running WebAssembly (Wasm) components, specifically optimized for building agents. Golem supports multiple high-level languages including Rust, TypeScript, Scala, and MoonBit. The platform includes a host API for managing primitives like promises and durability, a quota system for resource consumption, a secrets management interface, and a CLI-native tool metadata system. It also provides developer utilities such as the golem-openapi-client-generator and OTLP collector integration for traces, metrics, and logs.

Tokens
740.8K
Snippets
1.8K
Records
3.2K
Agent score
79%

What's inside Golem

  1. Overview of Golem

    main
    Golem is a set of services that enables running WebAssembly (Wasm) components in a distributed cloud environment. It is designed for building agents and supports multiple programming languages, including Rust, TypeScript, Scala, and MoonBit.
  2. Overview of the Golem OpenAPI Client Generator

    main

    The golem-openapi-client-generator is a specialized Rust-based tool designed to generate Rust clients specifically for OpenAPI specifications produced by Golem projects.

    Note: This is not a general-purpose OpenAPI client generator. While it may work with other OpenAPI specs produced by poem-openapi, its primary purpose and optimization are for Golem projects.

  3. Overview of dev-tools workspace

    main
    The dev-tools directory is a separate cargo workspace containing small build and development utilities. It is intentionally isolated from the main workspace to ensure that commands like cargo build --workspace, clippy, or release do not include these tools, keeping the main build and CI processes lean.
  4. Overview of Golem CLI capabilities

    main

    The Golem CLI is a command-line interface used for managing the Golem lifecycle. Its primary capabilities include:

    • Component Management: Uploading and managing Golem components.
    • Agent Orchestration: Launching new agents based on uploaded components.
    • Agent Interaction: Calling functions on running agents and observing their behavior.
  5. Overview of the MoonBit Golem HTTP interface

    main

    The sdks/moonbit/golem_sdk/interface/wasi/http/types interface provides the core types and methods required to implement HTTP functionality within MoonBit using Golem. It covers the complete lifecycle of HTTP communication, including:

    • Requests and Responses: The primary structures for handling incoming and outgoing HTTP messages.
    • Headers and Trailers: Mechanisms for managing metadata and end-of-message information.
    • Bodies: Handling the payload content of HTTP messages.
  6. Overview of Golem Services

    main

    Golem is composed of several specialized services. Depending on your deployment needs, you may need to run one or all of the following:

    ServiceResponsibilityStorage Backends
    Cloud ServiceStores entities like projects and accountsRDB
    Component ServiceComponent registry and managementRDB, Blob storage
    Debugging ServiceSpecial executor for step-by-step agent debuggingN/A
    Worker ServiceAPI Gateway and routing for worker executorsRDB
    Worker ExecutorRuns agents assigned to specific shardsRedis, Blob storage
    Shard ManagerMaintains worker executor shard assignments (Single instance only)Redis
    Component Compilation ServiceSidecar service for compiling componentsBlob storage
    Golem RouterNginx proxy for Golem APIsN/A
  7. Overview of golem-rust

    main
    The golem-rust library is a high-level Rust wrapper for Golem's runtime APIs. It is designed to simplify the process of writing Golem programs by providing abstractions for interacting with the Golem runtime, specifically including support for defining and performing operations transactionally.
  8. Key features for Agentic Applications in Golem

    main

    To support robust and scalable agentic services, Golem is investing in several core capabilities:

    • Durable Streaming: For managing continuous data flows in agentic workflows.
    • Standardized APIs: To ensure interoperability.
    • Tool Usage and Implementation: Facilitating how agents interact with external tools.
    • Visual Debugging: To improve observability of complex agentic logic.
    • High-level SDK: To simplify development of agentic services.
    • Capability-based Security Model: Providing secure sandboxing for agentic workloads.