Catalogue

Fifteen abstractions with separate responsibilities

Software uses abstractions to span operating systems and libraries. OA carries the same idea into capabilities supplied by local programs, operating-system facilities, and remote services. Choose the smallest abstraction your application or provider needs. Open the technical detail for contracts, clients, source publication and recorded language results.

Repository presence and a source build are separate from installed readiness. Current coverage carries the reviewed verdicts.

Safe shared updates

Compare-and-set (CAS): a development utility that compares and replaces bytes only when their recorded value still matches.

abstraction-cas · Public source

Application entry point

Resolve a capability through one local OA service while providers and service locations can change.

abstraction-facade · Public source

Model inference

Use chat, embeddings, speech, transcription, live voice and images; retain video and image-batch work as durable jobs.

abstraction-inference · Public source

Direct change observation

Turn polled or pushed values into current snapshots, quiet notices, or one callback after a burst settles.

abstraction-watch · Public source

Provider compositions

Composition repositories implement a capability over an existing engine or local store. They remain replaceable providers behind the same application contract.

Download Over Curl

an in-process download implementation over an existing tool

Technical detail · Source publication pending

Provider Kit

a provider module whose Go package a program composes in-process

Technical detail · Source publication pending

Provider Lemonade

a provider module that runs its own process, lemonaded, which the installer declares in lemonade-image.json

Technical detail · Source publication pending

Provider Localai

a provider module whose Go package a program composes in-process

Technical detail · Source publication pending

Provider Pytorch

a provider module that runs its own process, pytorchd

Technical detail · Source publication pending

Provider Thenoise

a provider module that runs its own process, thenoise-provider

Technical detail · Source publication pending

Runtime platform declaration

This table reproduces the generated runtime declaration and its evidence summaries. It states the recorded scope for each platform.

PlatformStatusRuntimeLimitsEvidence
Windows x64, per-user installationsupportedPer-user MSI; the supervisor starts the runtime in the signed-in session.Windows MSI packages are unsigned. The 0.3.0 installed job used Windows x64. ARM64 is cross-built; installation on ARM64 hardware is untested.Successful 0.3.0 verify job on head ff281d02: private non-admin per-user install and cross-tool compatibility; predecessor upgrade and reinstall; non-default-folder upgrade; failed-upgrade rollback and same-version host restart; uninstall and test-session removal.
Windows x64, machine installationsupportedMachine MSI; a service template starts a per-session runtime for each signed-in user.Everyone installation requires elevation. Runtime instances run in each signed-in user session. Windows MSI packages are unsigned. The 0.3.0 installed job used Windows x64. ARM64 is cross-built; installation on ARM64 hardware is untested.Successful 0.3.0 verify job on head ff281d02: machine-scope forced-failure rollback, upgrade exclusion and predecessor removal; fresh interactive session and crash recovery; uninstall for everyone and test-session cleanup.
Linux amd64 with a systemd user managersupportedPer-user tarball; install.sh registers abstraction-runtime.service with the user manager.Trusted selection needs clone3 and waitid P_PIDFD (Linux 5.4 or newer); a sandbox denying them returns PROOF_UNAVAILABLE. 0.3.0 package qualification passed 26 installed Linux cases, with lifecycle evidence from WSL2 and a hosted Ubuntu amd64 runner. ARM64 installation, other distributions and graphical sessions are untested.Successful 0.3.0 linux-verify job: checksum, install, package inspection and uninstall, plus the Linux disposable-account installed-lifecycle job.
0.2.0 candidate on hosted Ubuntu: installation under a disposable account and systemd user manager, readiness, a real download, result observation, removal with retained data and process cleanup passed.
Linux amd64 without a systemd user manager (containers, WSL without systemd, hosted CI accounts)supported without background servicesThe same tarball; install.sh installs the programs, reports that no background service will run and records `timer no`.Default resolution cannot select a runtime: selection reads the loaded user unit from systemctl, so applications receive runtime_unavailable. 0.3.0 package qualification includes the no-user-manager installation check. `openabstractions serve runtime` runs in the foreground; an application reaches it only through an explicit endpoint.Successful 0.3.0 linux-verify job includes install, package inspection and uninstall; the run's Linux package qualification includes the no-user-manager installation check.
0.2.0 release: installation without a user manager, the openabstractions payload, absence of retired jobd/dl/jobctl executables and removal passed. This job does not establish foreground capability calls.
macOS (universal package; installed qualification on arm64)supportedThe signed and notarized 0.3.0 universal package installs for the current user. Installed XPC discovery, capability readiness and protected-call behavior passed on the available arm64 Mac; reinstall and removal passed.The universal package includes Intel binaries, but installed execution was tested only on arm64 hardware. The retained installed receipt covers install, XPC discovery/calls, reinstall and removal; it does not record a separate crash-injection recovery test. Path names compare byte for byte on macOS although its volumes ignore case by default, so two names OA keeps apart can name one file (abstraction-identity CONTRACT.md, SamePathName). Native providers are not available on macOS in 0.4.0: their caller check needs an XPC endpoint. The macOS package leaves out Local model stores (inventoryd) and the model host (modelhostd).The 0.3.0 universal package is signed, notarized and published. Its installed acceptance was run on an arm64 Mac; Intel hardware execution was not tested.
Exact package SHA-256 82a2ec559ae47cf6f5fe8460fdb98c227867bac19ae855e3e2db4f4851b7b7fa; package verification, install, XPC readiness and protected-call checks, reinstall and removal passed on macOS 26.6.2 arm64.
Android, including TermuxunsupportedNone. No runtime is built, packaged, installed or run for Android.The packager builds only linux and macos; the release builds Windows MSIs, Linux tarballs and one macOS package. Termux has no systemd user manager, which Linux selection requires.`--platform` accepts only linux and macos.
The release builds no Android asset.
Nothing in the tree records a build, install or run on Android or Termux.

Contracts, clients and source routes

Measured on 2026-10-20. Each language row gives the verdict of the legacy whole-layer grid for the layer's own implementation (— is none), then the client: the facade's resolve accessors, or for JavaScript the generated service clients a binding from Machine.resolveService wraps. UNPROVEN means the grid found nothing to check: usually source for that layer and language exists with no test files the gate names, so no run happened and no verdict, pass or fail, was recorded. For an adopter, an UNPROVEN cell means the binding compiles and its behaviour is unverified on that platform; ship on a PASS cell.

abstraction-asks

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.asks/application@1 (resolved by the facade), abstraction.asks/operator@1 (resolved by the facade), abstraction.asks/application@2 (resolved by the facade), abstraction.asks/responder@1 (resolved by the facade), abstraction.asks/permission@1 (resolved by the facade), abstraction.asks/permission-operator@1 (resolved by the facade), abstraction.asks/notification@1 (resolved by the facade), abstraction.asks/notification-operator@1 (resolved by the facade).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveAsks, ResolveAsksChoices, ResolveAsksNotificationOperator, ResolveAsksNotifications, ResolveAsksOperator, ResolveAsksPermission, ResolveAsksPermissionOperator, ResolveAsksResponder
Pythonmatrix UNPROVEN; client resolve_asks, resolve_asks_choices, resolve_asks_operator
C++matrix UNPROVEN; client resolve_asks
Rustmatrix UNPROVEN; client resolve_asks, resolve_asks_operator
JavaScriptmatrix UNPROVEN; client ChoiceApplicationClient (abstraction.asks/application@2), NotificationApplicationClient (abstraction.asks/notification@1), NotificationOperatorClient (abstraction.asks/notification-operator@1), PermissionApplicationClient (abstraction.asks/permission@1), PermissionOperatorClient (abstraction.asks/permission-operator@1), QuestionApplicationClient (abstraction.asks/application@1), QuestionOperatorClient (abstraction.asks/operator@1), QuestionResponderClient (abstraction.asks/responder@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-asks (published)
  • Go: go get github.com/openabstractions/abstraction-asks/go
  • Python: abstraction-asks-protocol, installed from source
  • Rust: crate abstraction-asks-api, from source
  • JavaScript: @openabstractions/asks, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-cas

Show contracts, clients, platforms and install routes

Kind: local primitive (its definition declares only direct interfaces or plain records, called in-process).

Contracts: abstraction.cas/store@1 (direct interface).

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-cas/go
Pythonmatrix UNPROVEN; client package abstraction-cas-protocol, abstraction-cas
C++matrix UNPROVEN; client package abstraction_cas
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: in the application's process; needs no runtime.

Install:

  • repository github.com/openabstractions/abstraction-cas (published)
  • Go: go get github.com/openabstractions/abstraction-cas/go
  • Python: abstraction-cas-protocol, PyPI publish workflow on python/v* tags
  • Python: abstraction-cas, PyPI publish workflow on python/v* tags
  • C++: CMake package from source (cpp/)

abstraction-config

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.config/reader@1 (resolved by the facade, in the default runtime), abstraction.config/editor@1 (resolved by the facade, in the default runtime), abstraction.config/observer@1 (resolved by the facade).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveConfig, ResolveConfigEditor, ResolveConfigObserver
Pythonmatrix UNPROVEN; client resolve_config, resolve_config_editor, resolve_config_observer
C++matrix UNPROVEN; client resolve_config, resolve_config_editor
Rustmatrix UNPROVEN; client resolve_config, resolve_config_editor, resolve_config_observer
JavaScriptmatrix UNPROVEN; client ConfigEditorClient (abstraction.config/editor@1), ConfigObserverClient (abstraction.config/observer@1), ConfigReaderClient (abstraction.config/reader@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-config (published)
  • Go: go get github.com/openabstractions/abstraction-config/go
  • Python: abstraction-config-protocol, PyPI publish workflow on python/v* tags
  • Python: abstraction-config, PyPI publish workflow on python/v* tags
  • Rust: crate abstraction-config-api, from source
  • JavaScript: @openabstractions/config, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-credentials

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.credentials/holder@1 (resolved by the facade), abstraction.credentials/applier@1 (resolved by the facade), abstraction.credentials/reader@1 (resolved by the facade), abstraction.credentials/holder@2 (resolved by the facade), abstraction.credentials/applier@2 (resolved by the facade).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveCredentialReader, ResolveCredentials, ResolveCredentialsApplier, ResolveScopedCredentials, ResolveScopedCredentialsApplier
Pythonmatrix UNPROVEN; client resolve_credentials, resolve_credentials_applier
C++matrix UNPROVEN; client resolve_credentials, resolve_credentials_applier
Rustmatrix UNPROVEN; client resolve_credentials, resolve_credentials_applier
JavaScriptmatrix UNPROVEN; client ApplierClient (abstraction.credentials/applier@1), HolderClient (abstraction.credentials/holder@1), ScopedApplierClient (abstraction.credentials/applier@2), ScopedHolderClient (abstraction.credentials/holder@2), SecretReaderClient (abstraction.credentials/reader@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-credentials (published)
  • Go: go get github.com/openabstractions/abstraction-credentials/go
  • Python: abstraction-credentials-protocol, installed from source
  • Rust: crate abstraction-credentials-api, from source
  • JavaScript: @openabstractions/credentials, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-download

Show contracts, clients, platforms and install routes

Kind: provider (its definition declares the guarantees an implementation can promise a service, such as resume or survives_process_exit).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-download/go
Pythonmatrix UNPROVEN; client package abstraction-download-request-protocol
C++matrix UNPROVEN; client package abstraction_download
Rustmatrix UNPROVEN; client package abstraction-download-request-api
JavaScriptmatrix UNPROVEN; client package @openabstractions/download-request

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-download (published)
  • Go: go get github.com/openabstractions/abstraction-download/go
  • Python: abstraction-download-request-protocol, installed from source
  • Rust: crate abstraction-download-request-api, from source
  • JavaScript: @openabstractions/download-request, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-download-over-curl

Show contracts, clients, platforms and install routes

Kind: adapter (an in-process download implementation over an existing tool).

Contracts: none.

LanguageMatrix and client
Gomatrix —; client none
Pythonmatrix —; client none
C++matrix —; client headers in include/
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: in the application's process; needs no runtime.

Install:

  • repository github.com/openabstractions/abstraction-download-over-curl (not yet published)
  • C++: header-only (include/)

abstraction-facade

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.facade/resolver@1 (resolved by the facade), abstraction.facade/caller@1 (resolved by the facade), abstraction.facade/endpoint@1 (resolved by the facade), abstraction.facade/registry@1 (resolved by the facade), abstraction.facade/registry@2 (resolved by the facade), abstraction.facade/applications@2 (resolved by the facade).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveApplications, ResolveRegistry, ResolveRegistryV2
Pythonmatrix UNPROVEN; client package abstraction-facade-client
C++matrix UNPROVEN; client package abstraction_facade
Rustmatrix UNPROVEN; client package abstraction-facade-service
JavaScriptmatrix UNPROVEN; client ApplicationsClient (abstraction.facade/applications@2), CallerClient (abstraction.facade/caller@1), EndpointClient (abstraction.facade/endpoint@1), RegistryClient (abstraction.facade/registry@1), RegistryV2Client (abstraction.facade/registry@2), ResolverClient (abstraction.facade/resolver@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-facade (published)
  • Go: go get github.com/openabstractions/abstraction-facade/go
  • Python: abstraction-facade-client, installed from source
  • Rust: crate abstraction-facade-service, from source
  • JavaScript: @openabstractions/facade, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-identity

Show contracts, clients, platforms and install routes

Kind: local primitive (its definition declares only direct interfaces or plain records, called in-process).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-identity
Pythonmatrix UNPROVEN; client package abstraction-ipc
C++matrix UNPROVEN; client package abstraction_ipc
Rustmatrix UNPROVEN; client package abstraction-ipc
JavaScriptmatrix UNPROVEN; client package @openabstractions/ipc

Platforms: in the application's process; needs no runtime.

Install:

  • repository github.com/openabstractions/abstraction-identity (published)
  • Go: go get github.com/openabstractions/abstraction-identity
  • Python: abstraction-ipc, installed from source
  • Rust: crate abstraction-ipc, from source
  • JavaScript: @openabstractions/ipc, from source
  • C++: CMake package from source (cpp/)

abstraction-inference

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.inference/chat@1 (resolved by the facade), abstraction.inference/chat@2 (resolved by the facade), abstraction.inference/preload@1, abstraction.inference/embed@1 (resolved by the facade), abstraction.inference/transcription@1, abstraction.inference/speech@1, abstraction.inference/live@1, abstraction.inference/image@1, abstraction.inference/image@2 (resolved by the facade), abstraction.inference/video@1, abstraction.inference/operator@1 (resolved by the facade), abstraction.inference/selection-operator@2 (resolved by the facade).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveEmbeddings, ResolveInference, ResolveInferenceChatV2, ResolveInferenceImageV2, ResolveInferenceOperator, ResolveInferenceSelectionOperatorV2
Pythonmatrix UNPROVEN; client resolve_inference, resolve_inference_operator
C++matrix UNPROVEN; client resolve_inference, resolve_inference_operator
Rustmatrix UNPROVEN; client resolve_inference
JavaScriptmatrix UNPROVEN; client ChatClient (abstraction.inference/chat@1), ChatV2Client (abstraction.inference/chat@2), EmbedderClient (abstraction.inference/embed@1), ImageClient (abstraction.inference/image@1), ImageV2Client (abstraction.inference/image@2), LiveClient (abstraction.inference/live@1), OperatorClient (abstraction.inference/operator@1), PreloaderClient (abstraction.inference/preload@1), SelectionOperatorV2Client (abstraction.inference/selection-operator@2), SpeechClient (abstraction.inference/speech@1), TranscriptionClient (abstraction.inference/transcription@1), VideoClient (abstraction.inference/video@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-inference (published)
  • Go: go get github.com/openabstractions/abstraction-inference/go
  • Python: abstraction-inference-protocol, installed from source
  • Rust: crate abstraction-inference-api, from source
  • JavaScript: @openabstractions/inference, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-job

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.job/acceptance@1 (resolved by the facade, in the default runtime), abstraction.job/operations@1 (resolved by the facade, in the default runtime), abstraction.job/inventory@1 (resolved by the facade), abstraction.job/operator@1 (resolved by the facade).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveJobInventory, ResolveJobOperations, ResolveJobOperator, ResolveJobs, RestoreJobs
Pythonmatrix UNPROVEN; client resolve_job_inventory, resolve_job_operations, resolve_jobs
C++matrix UNPROVEN; client resolve_job_inventory, resolve_job_operations, resolve_jobs
Rustmatrix UNPROVEN; client resolve_job_inventory, resolve_job_operations, resolve_jobs
JavaScriptmatrix UNPROVEN; client JobInventoryClient (abstraction.job/inventory@1), JobOperatorClient (abstraction.job/operator@1), OperationControlClient (abstraction.job/operations@1), RecoverableAcceptanceClient (abstraction.job/acceptance@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-job (published)
  • Go: go get github.com/openabstractions/abstraction-job/go
  • Python: abstraction-job-protocol, installed from source
  • Rust: crate abstraction-job-api, from source
  • JavaScript: @openabstractions/job-acceptance, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-logging

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.logging/sink@1 (resolved by the facade, in the default runtime), abstraction.logging/reader@1 (resolved by the facade), abstraction.logging/observer@1 (resolved by the facade), abstraction.logging/reader@2 (resolved by the facade), abstraction.logging/observer@2 (resolved by the facade), abstraction.logging/source-reader@1 (resolved by the facade).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveLog, ResolveLogApplicationObserver, ResolveLogApplicationReader, ResolveLogObserver, ResolveLogReader, ResolveLogSourceReader
Pythonmatrix UNPROVEN; client resolve_log, resolve_log_observer, resolve_log_reader
C++matrix UNPROVEN; client resolve_log, resolve_log_observer, resolve_log_reader
Rustmatrix UNPROVEN; client resolve_log, resolve_log_observer, resolve_log_reader
JavaScriptmatrix UNPROVEN; client ApplicationHistoryObserverClient (abstraction.logging/observer@2), ApplicationHistoryReaderClient (abstraction.logging/reader@2), HistoryObserverClient (abstraction.logging/observer@1), HistoryReaderClient (abstraction.logging/reader@1), SinkClient (abstraction.logging/sink@1), SourceReaderClient (abstraction.logging/source-reader@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-logging (published)
  • Go: go get github.com/openabstractions/abstraction-logging/go
  • Python: abstraction-logging-protocol, installed from source
  • Rust: crate abstraction-logging-api, from source
  • JavaScript: @openabstractions/logging, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-model

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.model/resolver@1 (resolved by the facade), abstraction.model/manifest@1.

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveModel
Pythonmatrix UNPROVEN; client resolve_model
C++matrix UNPROVEN; client resolve_model
Rustmatrix UNPROVEN; client resolve_model
JavaScriptmatrix UNPROVEN; client ModelManifestClient (abstraction.model/manifest@1), ModelResolverClient (abstraction.model/resolver@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-model (published)
  • Go: go get github.com/openabstractions/abstraction-model/go
  • Python: abstraction-model-protocol, PyPI publish workflow on python/v* tags
  • Python: abstraction-model, PyPI publish workflow on python/v* tags
  • Rust: crate abstraction-model-api, from source
  • JavaScript: @openabstractions/model, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-provider-kit

Show contracts, clients, platforms and install routes

Kind: adapter (a provider module whose Go package a program composes in-process).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-provider-kit/go
Pythonmatrix —; client none
C++matrix —; client none
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: in the application's process; needs no runtime.

Install:

  • repository github.com/openabstractions/abstraction-provider-kit (not yet published)
  • Go: go get github.com/openabstractions/abstraction-provider-kit/go

abstraction-provider-lemonade

Show contracts, clients, platforms and install routes

Kind: provider (a provider module that runs its own process, lemonaded, which the installer declares in lemonade-image.json).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-provider-lemonade/go
Pythonmatrix —; client none
C++matrix —; client none
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: its own process, which the runtime launches or attaches to.

Install:

  • repository github.com/openabstractions/abstraction-provider-lemonade (not yet published)
  • Go: go get github.com/openabstractions/abstraction-provider-lemonade/go

abstraction-provider-localai

Show contracts, clients, platforms and install routes

Kind: adapter (a provider module whose Go package a program composes in-process).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-provider-localai/go
Pythonmatrix —; client none
C++matrix —; client none
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: in the application's process; needs no runtime.

Install:

  • repository github.com/openabstractions/abstraction-provider-localai (not yet published)
  • Go: go get github.com/openabstractions/abstraction-provider-localai/go

abstraction-provider-modelbridge

Show contracts, clients, platforms and install routes

Kind: provider (a provider module that runs its own process, modelbridged).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-provider-modelbridge/go
Pythonmatrix —; client none
C++matrix —; client none
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: its own process, which the runtime launches or attaches to.

Install:

  • repository github.com/openabstractions/abstraction-provider-modelbridge (published)
  • Go: go get github.com/openabstractions/abstraction-provider-modelbridge/go

abstraction-provider-modelhost

Show contracts, clients, platforms and install routes

Kind: provider (a provider module that runs its own process, modelhostd).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-provider-modelhost/go
Pythonmatrix —; client none
C++matrix —; client none
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: its own process, which the runtime launches or attaches to.

Install:

  • repository github.com/openabstractions/abstraction-provider-modelhost (published)
  • Go: go get github.com/openabstractions/abstraction-provider-modelhost/go

abstraction-provider-pytorch

Show contracts, clients, platforms and install routes

Kind: provider (a provider module that runs its own process, pytorchd).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-provider-pytorch/go
Pythonmatrix —; client none
C++matrix —; client none
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: its own process, which the runtime launches or attaches to.

Install:

  • repository github.com/openabstractions/abstraction-provider-pytorch (not yet published)
  • Go: go get github.com/openabstractions/abstraction-provider-pytorch/go

abstraction-provider-thenoise

Show contracts, clients, platforms and install routes

Kind: provider (a provider module that runs its own process, thenoise-provider).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-provider-thenoise/go
Pythonmatrix —; client none
C++matrix —; client none
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: its own process, which the runtime launches or attaches to.

Install:

  • repository github.com/openabstractions/abstraction-provider-thenoise (not yet published)
  • Go: go get github.com/openabstractions/abstraction-provider-thenoise/go

abstraction-resource

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.resource/table@1 (resolved by the facade), abstraction.resource/leases@1 (resolved by the facade).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveResourceLeases, ResolveResourceTable
Pythonmatrix UNPROVEN; client resolve_resource_leases, resolve_resource_table
C++matrix UNPROVEN; client resolve_resource_leases, resolve_resource_table
Rustmatrix UNPROVEN; client resolve_resource_leases, resolve_resource_leases_with_no_runtime_is_the_resolution_error, resolve_resource_table, resolve_resource_table_with_no_runtime_is_the_resolution_error
JavaScriptmatrix UNPROVEN; client LeasesClient (abstraction.resource/leases@1), TableClient (abstraction.resource/table@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-resource (published)
  • Go: go get github.com/openabstractions/abstraction-resource/go
  • Python: abstraction-resource-protocol, installed from source
  • Rust: crate abstraction-resource-client, from source
  • JavaScript: @openabstractions/resource, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-rights

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.rights/authorization@1 (resolved by the facade), abstraction.rights/operator@1 (resolved by the facade), abstraction.rights/authorization@2 (resolved by the facade), abstraction.rights/operator@2 (resolved by the facade).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveRights, ResolveRightsOperator, ResolveRightsSelector, ResolveRightsSelectorOperator
Pythonmatrix UNPROVEN; client resolve_rights, resolve_rights_operator
C++matrix UNPROVEN; client resolve_rights
Rustmatrix UNPROVEN; client resolve_rights, resolve_rights_operator
JavaScriptmatrix UNPROVEN; client AuthorizationClient (abstraction.rights/authorization@1), AuthorizationOperatorClient (abstraction.rights/operator@1), SelectorAuthorizationClient (abstraction.rights/authorization@2), SelectorAuthorizationOperatorClient (abstraction.rights/operator@2)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-rights (published)
  • Go: go get github.com/openabstractions/abstraction-rights/go
  • Python: abstraction-rights-protocol, installed from source
  • Rust: crate abstraction-rights-api, from source
  • JavaScript: @openabstractions/rights, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-router

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.router/router@1 (resolved by the facade).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveRouter
Pythonmatrix UNPROVEN; client resolve_router
C++matrix UNPROVEN; client resolve_router
Rustmatrix UNPROVEN; client resolve_router
JavaScriptmatrix UNPROVEN; client RouterClient (abstraction.router/router@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-router (published)
  • Go: go get github.com/openabstractions/abstraction-router/go
  • Python: abstraction-router-protocol, installed from source
  • Rust: crate abstraction-router-api, from source
  • JavaScript: @openabstractions/router, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-storage

Show contracts, clients, platforms and install routes

Kind: service (its definition declares a contract another process calls over the wire).

Contracts: abstraction.storage/content-reader@1 (resolved by the facade), abstraction.storage/content-writer@1 (resolved by the facade), abstraction.storage/content-changes@1 (resolved by the facade), abstraction.storage/holds@1, abstraction.storage/manifests@1, abstraction.storage/inventory@1 (resolved by the facade), abstraction.storage/content-remover@1, abstraction.storage/inventory-source@1, abstraction.storage/lend@1 (resolved by the facade), abstraction.storage/store@1 (direct interface), abstraction.storage/local@1 (direct interface), abstraction.storage/writable@1 (direct interface).

LanguageMatrix and client
Gomatrix UNPROVEN; client ResolveLending, ResolveStorage, ResolveStorageChanges, ResolveStorageInventory, ResolveStorageWriter
Pythonmatrix UNPROVEN; client resolve_storage, resolve_storage_changes, resolve_storage_writer
C++matrix UNPROVEN; client resolve_storage, resolve_storage_changes, resolve_storage_writer
Rustmatrix UNPROVEN; client resolve_storage, resolve_storage_changes, resolve_storage_writer
JavaScriptmatrix UNPROVEN; client ContentChangesClient (abstraction.storage/content-changes@1), ContentReaderClient (abstraction.storage/content-reader@1), ContentRemoverClient (abstraction.storage/content-remover@1), ContentWriterClient (abstraction.storage/content-writer@1), HoldsClient (abstraction.storage/holds@1), InventoryClient (abstraction.storage/inventory@1), InventorySourceClient (abstraction.storage/inventory-source@1), ManifestsClient (abstraction.storage/manifests@1)

Platforms: the runtime's (Runtime platforms above); supported: windows-user, windows-machine, linux-systemd-user, macos; supported without background services: linux-no-user-manager; unsupported: android-termux.

Install:

  • repository github.com/openabstractions/abstraction-storage (published)
  • Go: go get github.com/openabstractions/abstraction-storage/go
  • Python: abstraction-storage-content, installed from source
  • Rust: crate abstraction-storage-content-api, from source
  • JavaScript: @openabstractions/storage-content, from source
  • C++: CMake package from source (cpp/)
  • runtime: the redist runtime installer: a Windows MSI, Linux tarballs and a macOS package

abstraction-storage-over-local-stores

Show contracts, clients, platforms and install routes

Kind: provider (a storage implementation that runs its own command).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-storage-over-local-stores/go
Pythonmatrix —; client none
C++matrix —; client none
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: its own process; no package and no platform declaration.

Install:

  • repository github.com/openabstractions/abstraction-storage-over-local-stores (published)
  • Go: go get github.com/openabstractions/abstraction-storage-over-local-stores/go

abstraction-watch

Show contracts, clients, platforms and install routes

Kind: local primitive (its definition declares only direct interfaces or plain records, called in-process).

Contracts: none.

LanguageMatrix and client
Gomatrix UNPROVEN; client package github.com/openabstractions/abstraction-watch/go
Pythonmatrix UNPROVEN; client package abstraction-watch-protocol, abstraction-watch
C++matrix UNPROVEN; client package abstraction_watch
Rustmatrix —; client none
JavaScriptmatrix —; client none

Platforms: in the application's process; needs no runtime.

Install:

  • repository github.com/openabstractions/abstraction-watch (published)
  • Go: go get github.com/openabstractions/abstraction-watch/go
  • Python: abstraction-watch-protocol, PyPI publish workflow on python/v* tags
  • Python: abstraction-watch, PyPI publish workflow on python/v* tags
  • C++: CMake package from source (cpp/)