golem-rust 3.0.0-rc5

Golem Rust tooling library that facilitates writing Golem backends in Rust
Documentation
// Copyright 2024-2026 Golem Cloud
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

pub use crate::golem_agentic::golem::agent::common::Principal;
pub type InputStream = wit_bindgen::StreamReader<
    Result<Vec<u8>, crate::golem_agentic::golem::tool::streams::ByteStreamFailure>,
>;
pub use agent::*;
pub use agent_config::*;
#[doc(hidden)]
pub use agent_impl::install_agent_exports;
pub use agent_initiator::*;
pub use agent_registry::*;
pub use agent_stream::*;
pub use ambient_tool_rpc::*;
pub use async_utils::*;
pub use errors::*;
#[doc(hidden)]
pub use exports::Component;
pub use extended_agent_type::*;
pub use extended_tool_type::*;
pub use golem_tool_metadata::{WireToolSchema, WireTypeRef};
pub use http::*;
pub use multimodal::*;
pub use resolved_agent::*;
pub use schema::*;
pub use snapshot_parts::{MultipartSnapshot, SnapshotPart};
pub use tool_client::*;
pub use tool_impl::OutputStream;
#[doc(hidden)]
pub use tool_impl::install_tool_exports;
pub use tool_literal::*;
pub use tool_refinement::*;
pub use tool_reflection::*;
pub use tool_registry::{
    ToolInvokeFuture, ToolInvokeFutureFor, ToolInvoker, get_all_tools, get_extended_tool_by_name,
    get_tool_by_name, get_tool_invoker_by_name, register_prepared_tool_invoker, register_tool,
    register_tool_invoker, register_wire_tool_invoker,
};
pub use unstructured_binary::*;
pub use unstructured_text::*;
pub use webhook::*;
pub use wit_bindgen::spawn_local;

#[derive(Debug)]
pub struct EphemeralInvocationResult<T> {
    pub metadata: crate::golem_agentic::golem::agent::host::InvocationMetadata,
    pub value: T,
}

mod agent;
mod agent_config;
#[cfg(feature = "export_golem_agentic")]
mod agent_impl;
mod agent_initiator;
mod agent_registry;
mod agent_stream;
pub mod ambient_tool_rpc;
mod async_utils;
mod errors;
pub(crate) mod exports;
mod extended_agent_type;
mod extended_tool_type;
mod http;
mod multimodal;
mod principal_serde;
pub mod reflection;
mod resolved_agent;
mod schema;
pub mod snapshot_auto;
mod snapshot_parts;
mod tool_client;
mod tool_impl;
mod tool_literal;
mod tool_refinement;
mod tool_reflection;
mod tool_registry;
mod unstructured_binary;
mod unstructured_text;
mod webhook;