Requirements

  • .NET ≥ 8.0 (for System.Net.Quic).
  • The native FFI lib telequick_core_ffi.so / .dylib / .dll reachable by DllImport (next to the executable, on PATH/LD_LIBRARY_PATH, or configured via NativeLibrary.SetDllImportResolver).
System.Net.Quic requires DOTNET_SYSTEM_NET_QUIC_ENABLE=1 on Windows for some Server Core SKUs. Linux and macOS are fine out of the box.

Install

dotnet add package TeleQuick.SDK

Native lib placement

The SDK calls into native via [DllImport("telequick_core_ffi")]. Drop the binary somewhere the dotnet runtime can find it:
sudo cp telequick_core_ffi.so /usr/local/lib/
sudo ldconfig
For a custom search path, register a resolver during startup:
using System.Runtime.InteropServices;

NativeLibrary.SetDllImportResolver(typeof(TeleQuick.SDK.NativeMethods).Assembly,
    (name, asm, _) =>
    {{
        if (name != "telequick_core_ffi") return IntPtr.Zero;
        var custom = Environment.GetEnvironmentVariable("TELEQUICK_LIB_PATH");
        return custom is not null
            ? NativeLibrary.Load(custom)
            : IntPtr.Zero;
    }});

Smoke test

using TeleQuick.SDK;

var client = new TeleQuickClient(
    "quic://engine.telequick.dev:9090",
    "/etc/telequick/service-account.json"
);
Console.WriteLine($"client constructed: {{client}}");