Skip to content

Features and support status ​

Vylinejs is a protocol library, not a bundled chat application. The table describes the current library surface and its maintenance status, not a guarantee that LINE's servers will continue to accept an unofficial protocol.

Feature status ​

FeatureStatusNotes
Password and QR loginSupportedQR rendering belongs to the host application. LINE may impose account/device checks.
Stored-session restoreSupportedRefreshes saved sessions and persists rotated credentials through the supplied storage adapter.
E2EE message handlingSupported with account-specific limitsHistorical key generations are retained. Certain existing accounts may still have identity/key material that cannot be verified locally.
Talk messages and eventsSupportedclient.listen() supports abort through AbortSignal; handlers should catch their own rejected promises.
LIFFSupported where LINE endpoints allowIncludes message sharing, consent retry behavior, and view issuance. See the current methods in the generated package docs.
Album/MoaSupportedUses LINE's Album REST endpoints through LEGY. API changes on LINE's side may affect it.
1:1 call/media helpersPartialSignaling and media helpers are implemented; live support varies by device and network. Check call verification notes before relying on a specific path.
Group callsPartialGroup route, audio, roster, and video building blocks are implemented; live peer compatibility is not guaranteed. See group calls.
Video callsPartialThe library sends and receives encoded VP8 frames. Camera capture, encoding, display, and live interoperability remain caller/runtime responsibilities. See video calls.
Square/OpenChatLegacy, not actively supportedRetained from LINEJS for compatibility. Vylinejs is not committing to routine Square maintenance or new Square feature work.
LINE VOOM/TimelineUnavailableVOOM ended on 2026-09-30. Compatibility APIs are deprecated and fail before making a request. No replacement endpoint is provided.
Browser runtimeUnsupported for UDP call mediaThe call transport uses UDP sockets. Other browser use is not part of the verified runtime matrix.

LIFF message sharing ​

LIFF sharing is an unofficial integration with LINE endpoints. Its availability and restrictions have changed substantially over time, and LINE may change them again. A successful API response does not guarantee delivery or continued access. Check current LINE rules and test with the target account before relying on this feature. Do not use it to bypass consent, account limits, or messaging restrictions.

After creating and logging in a Client, use client.liff.sendLiff() to share one or more messages. The sentBy field adds display attribution to a text message; it does not change the authenticated LINE account that sends it.

ts
import { liff } from "@nezumi0627/vylinejs";

await client.liff.sendLiff({
	to: "u-recipient-mid",
	messages: [
		liff.text("Shared through LIFF", {
			label: "Vylinejs",
			iconUrl: "https://example.com/avatar.png",
		}),
	],
});

Use client.liff.shareMessage(to, message) when sending a single message with the convenience API. Both methods may require consent and can fail when LINE restricts the endpoint or the account. See the LIFF API reference.

Runtimes ​

The library is developed and tested with Deno 2.7.14. Node.js 24 is used for the transport compatibility check. JSR provides an npm-compatible package for Node.js, npm, and Bun workflows, but the project does not run a full test matrix on every runtime and version. The documentation site uses Node.js and npm. Browser UDP is not available for call transport.

Feature guides and source examples ​

FeatureGuideSource example
Login and sessionsAuthenticationexample/talk/ping.ts
Talk messages and eventsMessages and eventsexample/talk/all_methods.ts
1:1 audio callsAudio callsexample/call/call_on_command.ts
Group callsGroup callsexample/call/call_on_command.ts
Video callsVideo callsexample/call/video.ts
Incoming callsIncoming callsexample/call/incoming.ts
E2EEE2EE and stored keysAPI and source comparison
Album / MoaAlbum guideexample/moa/list-albums.ts

Performance claims ​

Vylinejs improves specific measured paths such as file storage, message encoding, packet processing, and buffer copies. Measurements are local microbenchmarks with stated inputs, not whole-application latency or a promise that every workload is faster than LINEJS. The stability notes list the benchmark environment, results, and reproduction commands.

Service changes and data safety ​

LINE controls the services and protocol. A service can be changed or retired without notice. Keep credentials and E2EE keys in a private storage location, make backups before changing login devices, and do not clear historical E2EE keys to troubleshoot a decryption failure. See authentication and session storage for credential handling.

Vylinejs is an unofficial LINE client library. Released under the MIT License.