Skip to content

Ecosystem

This page lists the official plugins, packages and tools built for HappyView, with the page or repository that documents each one.

The official plugins are built in the plugins repository and published to the HappyProto plugin registry. Plugins covers installing them.

An interpreter plugin runs scripts in one language. Languages covers choosing and installing them.

PluginWhat it is
happyview-luaRuns scripts in Lua 5.4.
happyview-javascriptRuns scripts in JavaScript on the QuickJS-ng engine.
happyview-typescriptRuns scripts in TypeScript, compiled with SWC and run on QuickJS-ng.

A library plugin gives scripts a set of functions under a happyview.* namespace. Libraries lists the capabilities each one needs and links to its README.

PluginNamespaceWhat it is
happyview-dbhappyview.dbQueries indexed records.
happyview-sqlhappyview.sqlRuns SQL against the operator’s own tables.
happyview-backlinkshappyview.backlinksFinds records that reference a given AT URI.
happyview-recordhappyview.recordWrites records as the calling user, writes to the local index, and validates records against lexicons.
happyview-xrpchappyview.xrpcMakes XRPC queries and procedure calls as the calling user.
happyview-atprotohappyview.atprotoResolves services, downloads blobs, looks up labels, and signs attestations.
happyview-spaceshappyview.spacesReads and writes records, membership and invites in atproto spaces.
happyview-linked-reposhappyview.linked_reposWrites records, uploads blobs and makes XRPC calls through repos an operator has linked.
happyview-jobshappyview.jobsEnqueues and reads background jobs.
happyview-httphappyview.httpSends outbound HTTP requests.
happyview-blobshappyview.blobsStores and reads byte content, addressed by the CID of its contents.
happyview-accounthappyview.accountReads the calling user’s email address, as their PDS reports it.

Atproto spaces are off by default; Spaces covers turning them on.

These packages are in the packages/ directory of the HappyView repository. SDK overview explains which one to use.

PackageWhat it isDocs
@happyview/lex-agentConnects the @atproto/lex client to a HappyView instance with DPoP authentication.Lex agent
@happyview/oauth-clientThe platform-agnostic OAuth client that the browser and Node.js clients build on.OAuth client
@happyview/oauth-client-browserOAuth client for browser apps.Browser client
@happyview/oauth-client-nodeOAuth client for server-side Node.js apps.Node client
@happyview/nsidValidates AT Protocol NSIDs.Repository

These crates are in the crates/ directory of the HappyView repository.

CrateWhat it isDocs
happyview-plugin-sdkThe Rust SDK for writing HappyView plugins.Plugin SDK
happyview-providerThe traits a record source or record storage implements.Record providers
ToolWhat it isDocs
hpyHappyProto’s CLI. It creates, runs, tests and deploys HappyView projects, and publishes plugins to the registry.CLI, repository