Skip to content

Installation

Library version: __LIBRARY_VERSION__ (from versions.env)

All examples are tested against this version. Bump LIBRARY_VERSION in versions.env and all package specs (pyproject.toml, Directory.Packages.props, package.json) to match.

Gitea Registry Authentication

All Virtufin packages are hosted on the Gitea package registry at gitea.haenerconsulting.com. Authentication requires a personal access token with read:packages scope.

Python (uv)

cd python
source ../.env
export UV_INDEX_GITEA_USERNAME=$GITEA_USERNAME
export UV_INDEX_GITEA_PASSWORD=$GITEA_TOKEN
uv sync

Run examples:

uv run python websocketmanager/binance_clob_example.py

C# / F# (NuGet)

The dotnet/NuGet.Config file uses environment variable substitution:

<packageSourceCredentials>
  <Virtufin>
    <add key="Username" value="%(GITEA_USERNAME)" />
    <add key="ClearTextPassword" value="%(GITEA_TOKEN)" />
  </Virtufin>
</packageSourceCredentials>

With GITEA_USERNAME and GITEA_TOKEN set, run:

cd dotnet
dotnet restore

Alternatively, configure manually:

dotnet nuget add source https://gitea.haenerconsulting.com/api/packages/virtufin/nuget/index.json \
  --name Virtufin --username <user> --password <token>

TypeScript (npm)

Create ~/.npmrc or use the project's .npmrc:

//gitea.haenerconsulting.com/api/packages/virtufin/npm/:_authToken=<your-token>

Then:

cd typescript
npm install

Packages Used

Language WebSocketManager WorkManager API Gateway
Python virtufin-websocketmanager virtufin-workmanager virtufin-api
C# Virtufin.WebSocketManager.Client Virtufin.WorkManager.Client Virtufin.Api.Client
F# (same) (same) (same)
TypeScript @virtufin/websocketmanager @virtufin/workmanager virtufin-api