Set of NPM packages written in TypeScript to interact with Versia-compatible services.
@versia/federation
: Federation types, validators and cryptography for Versia server implementations.@versia/client
: Client for the reference Versia Server implementation.
The built output of each package is not even 200 KB
in size, making it a lightweight and efficient solution for your Versia needs. Installing the package adds around 5 MB
to your node_modules
folder, but this does not affect the final bundle size.
Compilation (bundling/minifying) time is a few seconds, almost all of which is spent on type-checking. The actual compilation time is less than a tenth of a second.
Please see the @versia/federation
README for more information.
Please see the @versia/client
README for more information.
See the Compatibility section for the supported environments. Any package manager can be used to install the packages.
- Bun version
1.1.8
or higher. - Either the Linux or macOS operating systems. (Windows will work, but is not officially supported.)
This library is built for JavaScript runtimes with the support for:
- Node.js: 14.0+ is the minimum, but only Node.js 20.0+ (LTS) is officially supported.
- Deno: Support is unknown. 1.0+ is expected to work.
- Bun: Bun 1.1.8 is the minimum-supported version. As Bun is rapidly evolving, this may change. Previous versions may also work.
Consequently, this library is compatible without any bundling in the following browser versions:
- Chrome: 80+
- Edge: 80+
- Firefox: 74+
- Safari: 13.1+
- Opera: 67+
- Internet Explorer: None
If you are targeting older browsers, please don't, you are doing yourself a disservice.
Transpilation to non-ES Module environments is not officially supported, but should be simple with the use of a bundler like Parcel or Rollup.
Both packages are distributed as a scoped package on the NPM registry or JSR.
We strongly recommend using JSR over NPM for all your packages that are available on it.
# NPM version
deno add npm:@versia/federation npm:@versia/client # For Deno
npm install @versia/federation @versia/client # For NPM
yarn add @versia/federation @versia/client # For Yarn
pnpm add @versia/federation @versia/client # For PNPM
bun add @versia/federation @versia/client # For Bun
# JSR version
deno add @versia/federation @versia/client # For Deno
npx jsr add @versia/federation @versia/client # For JSR
yarn dlx jsr add @versia/federation @versia/client # For Yarn
pnpm dlx jsr add @versia/federation @versia/client # For PNPM
bunx jsr add @versia/federation @versia/client # For Bun
If you want to install from source, you can clone this repository and run the following commands:
bun install # Install dependencies
bun run build # Build the packages
This project is licensed under the MIT License - see the LICENSE file for details.
- Bun: Thanks to the Bun team for creating an amazing JavaScript runtime.
- TypeScript: TypeScript is the backbone of this project.
- Node.js: Node.js created the idea of JavaScript on the server.
- April John: Creator and maintainer of the Versia Server ActivityPub bridge.