Help us shape the future of Go! Take the 2026 Go Developer Survey

openfastchat-core

module
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2026 License: AGPL-3.0

README

openfastchat-core

The open engine and shared frontend behind OpenFastChat, licensed AGPL-3.0-only.

It carries no database, billing, or auth-secret concerns — those live in each wrapper. Both wrappers (the self-host app and the proprietary hosted SaaS) build on this core; they are siblings over core, not layered on each other.

Backend — Go module github.com/openfastchat/openfastchat-core

  • flowengine/ — the flow DAG executor, validation, and stream events
  • llmclient/ — multi-provider OpenAI-compatible chat client with tool calls
  • compact/ — context compaction
  • brave/ — web-search client
  • crypto/ — AES-256-GCM for provider keys at rest
  • coreconfig/ — model registry, provider routing, and engine tuning knobs

Wrappers talk to the engine over the flowengine.LLMClient interface (the billing/abuse layer is injected by the hosted wrapper; the self-host app injects an unbilled client). Builds standalone (go build ./...), no external deps.

Frontend — npm package @openfastchat/ui (frontend/)

The reusable React building blocks: the flow editor (@xyflow/react), chat UI, node renderers, ndjson stream parsing, and the data hooks. react, react-dom, react-router-dom, @xyflow/react, and @tanstack/react-query are peerDependencies so each wrapper owns a single copy. Wrappers consume it via pnpm during local staging (link:../../openfastchat-core/frontend) and as a published version once open-sourced.

License

AGPL-3.0-only. See LICENSES/. REUSE-compliant; run reuse lint.

Directories

Path Synopsis
Package coreconfig holds the engine-level configuration shared by every OpenFastChat wrapper: the OpenAI-compatible provider set, the model→provider routing index, the model registry, and the flow-engine tuning constants.
Package coreconfig holds the engine-level configuration shared by every OpenFastChat wrapper: the OpenAI-compatible provider set, the model→provider routing index, the model registry, and the flow-engine tuning constants.
Package crypto encrypts provider API keys at rest with AES-256-GCM under a master key from the environment, so a database leak never yields usable secrets.
Package crypto encrypts provider API keys at rest with AES-256-GCM under a master key from the environment, so a database leak never yields usable secrets.
Package moderation rejects user-supplied display text (usernames, chat titles, flow names) that contains profanity, so the same rules apply everywhere a name is accepted.
Package moderation rejects user-supplied display text (usernames, chat titles, flow names) that contains profanity, so the same rules apply everywhere a name is accepted.
Package usernames generates random adjective_noun display names.
Package usernames generates random adjective_noun display names.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL