livqenoDocs

MigrateFrom Raven / Livqeno

Migrate from Raven / Livqeno

Raven and Livqeno are now Livqeno. Package, symbol, environment variable, webhook header, CSS, CLI and domain renames, and what stayed the same.

The platform used to have two names: Raven inside the code (package names, class names, the CLI) and Livqeno on the website, the docs and some SDKs. Both are now Livqeno.

This is a rename only. The API, the wire protocols, the tokens and how everything behaves are the same. For most apps the migration is: install the new package names, change your imports, and rename a few environment variables. The old names keep working for now, so you can do it one step at a time.

Package names

npm

BeforeAfter
@ravenkash/rtc@livqeno/rtc
@ravenkash/chat@livqeno/chat
@ravenkash/client@livqeno/live (new name, not just a new scope)
@ravenkash/react@livqeno/react
@ravenkash/react-native@livqeno/react-native
@ravenkash/server@livqeno/server
@ravenkash/cli@livqeno/cli

Version numbers carry over, so keep the same version ranges.

@ravenkash/effects was removed, not renamed — see Effects removed for what to use instead.

Other languages

EcosystemBeforeAfter
Flutter (pub)raven_rtc, raven_chat, raven_livelivqeno_rtc, livqeno_chat, livqeno_live
Flutter importimport 'package:raven_rtc/raven_rtc.dart';import 'package:livqeno_rtc/livqeno_rtc.dart';
Python (PyPI)pip install livqeno-sdk, import ravenpip install swalvo, import swalvo
Python clientraven.Raven(...), raven.AsyncRaven(...)swalvo.Swalvo(...), swalvo.AsyncSwalvo(...)
Gogithub.com/atulsinghhhh/Raven/sdks/go/livqeno, package livqenogithub.com/atulsinghhhh/swalvo-sdks/sdks/go/swalvo, package swalvo
Java (Maven)com.livqeno:livqeno-server, package com.livqeno.servercom.swalvo:swalvo-server, package com.swalvo.server
PHP (Composer)livqeno/livqeno-php, namespace Livqeno\swalvo/swalvo-php, namespace Swalvo\
iOS (Swift Package)LivqenoRTCSwalvoRTC
Android (Gradle)io.livqeno:livqeno-rtc, package io.livqeno.rtcio.swalvo:swalvo-rtc, package io.swalvo.rtc

The Go module still lives in the atulsinghhhh/swalvo-sdks repository. Only the package directory and package name changed.

Symbol renames

Public names that started with Raven or Livqeno now start with Swalvo.

BeforeAfter
Raven, RavenError, isRavenError, RavenClientOptions, RavenHttpClient (server)Swalvo, SwalvoError, isSwalvoError, SwalvoClientOptions, SwalvoHttpClient
RavenRoom, RavenChat, RavenLiveStream, RavenVideo, RavenAudio (React)SwalvoRoom, SwalvoChat, SwalvoLiveStream, SwalvoVideo, SwalvoAudio
useRaven, useRavenClient, useRavenError, UseRavenResultuseSwalvo, useSwalvoClient, useSwalvoError, UseSwalvoResult
RavenRoomProps, RavenSnapshot, RavenConnectionState, …SwalvoRoomProps, SwalvoSnapshot, SwalvoConnectionState, …
RavenChatError, isRavenChatError, toRavenChatError (chat)SwalvoChatError, isSwalvoChatError, toSwalvoChatError
RavenVideoView, RavenTrackKind (Flutter, React Native)SwalvoVideoView, SwalvoTrackKind
Livqeno, LivqenoException (Java, PHP)Swalvo, SwalvoException
LivqenoRTC (iOS)SwalvoRTC

In TypeScript, Dart and Python the old names are still exported as deprecated aliases of the new ones, so existing code compiles once it points at the new package, and instanceof works with either name. Python also keeps a raven import shim (with a deprecation warning). The aliases will be removed in a future major version. In Go, Java, PHP, Swift and Kotlin the package coordinates changed, so update the imports when you switch.

Docs and examples now name the client variable swalvo (const swalvo = new Swalvo({...})). That's only a convention.

Environment variables

BeforeAfter
RAVEN_API_KEY, LIVQENO_API_KEYSWALVO_API_KEY
RAVEN_API_URL, LIVQENO_API_URLSWALVO_API_URL
RAVEN_WEBHOOK_SECRET, LIVQENO_WEBHOOK_SECRETSWALVO_WEBHOOK_SECRET
RAVEN_ENV, LIVQENO_ENVSWALVO_ENV
RAVEN_PUBLIC_API_URLSWALVO_PUBLIC_API_URL
RAVEN_TOKEN (CLI)SWALVO_TOKEN
RAVEN_CONFIG_DIR (CLI)SWALVO_CONFIG_DIR
RAVEN_DASHBOARD_URL (CLI)SWALVO_DASHBOARD_URL

The CLI, and the Go and Java SDKs (for SWALVO_ENV), check SWALVO_* first, then RAVEN_*, then LIVQENO_*. Using an old name prints one deprecation warning per process and never fails.

The TypeScript server SDK reads no environment variables itself, so rename them where your own code reads them: new Swalvo({ apiKey: process.env.SWALVO_API_KEY }).

Webhook headers

See Webhooks for the delivery format.

Every delivery now carries the signature and metadata under the new names, and still under the old ones:

New (read this)Legacy (still sent)
Swalvo-SignatureRaven-Signature
Swalvo-Event-IdRaven-Event-Id
Swalvo-Event-TypeRaven-Event-Type

Both carry the same value. The SDK verifiers read swalvo-signature first, then raven-signature (in TypeScript, verifyWebhook also accepts the whole headers object). If you read the header yourself:

const signature = req.header('swalvo-signature') ?? req.header('raven-signature');

The signing scheme (t=<unix>,v1=<hmac-sha256> over "<timestamp>.<raw body>") and your webhook secrets are unchanged.

React CSS classes and custom properties (breaking)

The class names and CSS custom properties that @livqeno/react puts on its components changed prefix:

BeforeAfter
.raven-video, .raven-chat, .raven-participant-tile, .raven-button, ….swalvo-video, .swalvo-chat, .swalvo-participant-tile, .swalvo-button, …
--raven-primary, --raven-bg, --raven-radius, …--swalvo-primary, --swalvo-bg, --swalvo-radius, …
data-raven-speaking, data-raven-connection-qualitydata-swalvo-speaking, data-swalvo-connection-quality

There are no aliases for these. If your stylesheets target .raven-* selectors, override --raven-* variables, or select on data-raven-* attributes, search for raven- in your CSS and rename it. If you only use the components with their default look, there is nothing to do.

CLI

  • The command is now swalvo (swalvo login, swalvo init, …), from @livqeno/cli. The old raven command still works but prints a deprecation notice.
  • Settings live in ~/.swalvo/. Any file not there yet is read from ~/.raven/, so you stay logged in. Nothing is moved or deleted.
  • swalvo init writes swalvo.json; an existing raven.json is still read.
  • In CI, set SWALVO_TOKEN instead of RAVEN_TOKEN.

Domains

Public hostnames move from livqeno.com to livqeno.com:

BeforeAfter
https://api.livqeno.comhttps://api.livqeno.com
https://app.livqeno.com (dashboard)https://app.livqeno.com
https://docs.livqeno.comhttps://docs.livqeno.com
turn.livqeno.com, ingest.livqeno.com, rtmp.livqeno.com, hls.livqeno.com, …turn.livqeno.com, ingest.livqeno.com, rtmp.livqeno.com, hls.livqeno.com, …
security@livqeno.com, support@…security@livqeno.com, support@…

If you set the API URL yourself (SWALVO_API_URL or a baseUrl option), update it. If you allow-list our hostnames in a Content Security Policy or a firewall, add the livqeno.com ones. Until livqeno.com is live, keep the livqeno.com entries as well.

What did not change

  • Error codes keep their RAVEN_ prefix (RAVEN_ROOM_NOT_FOUND, …). Your code matches on them, so they will not be renamed.
  • The REST API: paths, bodies and pagination are identical.
  • Tokens: same JWTs and claims (aud: raven-rtc, aud: raven-chat). Tokens minted before the rename stay valid until they expire.
  • API keys and webhook secrets: nothing to rotate.
  • Wire protocols: signaling and chat WebSocket protocols, subprotocol names and data-channel labels are unchanged, so old and new SDKs can share a room.
  • End-to-end encryption: key derivation labels are unchanged, so old and new clients can join the same encrypted call.
  • On-device storage: offline outbox keys are unchanged.
  • Behaviour: rooms, chat, live streaming and limits work as before.

Checklist

  1. Swap the packages. Replace every @ravenkash/* dependency with the matching @swalvo/* one (@ravenkash/client → @livqeno/live). For other languages, use the table above.
  2. Update imports. Change the import paths. With the deprecated aliases in place this is enough to get the build green.
  3. Rename the symbols. Replace Raven*, useRaven* and Livqeno* with Swalvo* and useSwalvo*.
  4. Rename environment variables to SWALVO_* in every environment (local .env, CI, staging, production).
  5. Webhooks. If you read the signature header yourself, read swalvo-signature first, raven-signature second.
  6. CSS. Rename any .raven-* selectors, --raven-* variables and data-raven-* attribute selectors to swalvo.
  7. CLI. Install @livqeno/cli, use swalvo in scripts, and set SWALVO_TOKEN in CI.
  8. Hostnames. Update any hard-coded livqeno.com URLs and CSP or firewall allow-lists.
  9. Leave error code handling alone. RAVEN_* codes stay as they are.
  10. Check for warnings. Run your app and look for deprecation warnings about old environment variable names or aliases. When there are none, you're done.