caravan_rpc (Elixir / Erlang) — Pre-release placeholder

Runtime SDK for the Caravan application-definition compiler.

Status: 0.0.1 pre-release placeholder. This release reserves the Hex.pm name. The functional SDK lands at 0.1.0.

Install

def deps do
  [
    {:caravan_rpc, "~> 0.0.1"}
  ]
end

What is Caravan?

Caravan is an application-definition compiler. The same source code deploys across packaging (inproc / container / lambda) × placement (compose / Fargate / Lambda / Batch) × composition (oss-local / cloud-managed) axes by yaml-line changes alone — no source-code edits.

Read the thesis for the full pitch and the PoC RPC SDK spec for what this package will become.

When 0.1.0 ships

defmodule Embedder do
  @callback embed(String.t()) :: [float()]
end

defmodule LocalEmbedder do
  @behaviour Embedder
  def embed(_text), do: [0.1, 0.2, 0.3]
end

CaravanRpc.wagon(Embedder)
CaravanRpc.provide(Embedder, LocalEmbedder)

# caller side — dispatches inproc / http / lambda per CARAVAN_RPC_PEERS
embedder = CaravanRpc.client(Embedder)
vec = embedder.embed("hello")

The 0.0.1 placeholder provides compile-clean stubs but CaravanRpc.client/1 raises — it's not functional yet.

Roadmap

License

Apache-2.0. See LICENSE.