# linejs | Evex  Developers | Knowledge Base | Instagit

LINEJS is a JavaScript library for creating a LINE SelfBot. 

GitHub Stars: 220

Repository: https://github.com/evex-dev/linejs

---

## Articles

### [How to Implement Caching Strategies for API Responses in LINEJS](/evex-dev/linejs/how-to-implement-caching-strategies-for-api-responses-in-linejs)

Learn to implement effective caching strategies for API responses in LINEJS. Boost performance by using persistent storage, TTL memoization, and extending the LiffService token cache.

- Tags: how-to-guide
- Published: 2026-03-01

### [How the LINEJS Connection Manager Handles Multiple Streams: Architecture and Implementation](/evex-dev/linejs/how-does-the-connection-manager-handle-multiple-streams-in-linejs)

Discover how LINEJS ConnManager handles multiple streams by multiplexing Talk operations and Square events over HTTP/2 push connections and routing incoming frames.

- Tags: architecture
- Published: 2026-03-01

### [How to Use LINEJS in Browser Environments: Complete Setup Guide](/evex-dev/linejs/can-linejs-be-used-in-browser-environments)

Yes LINEJS fully supports browser environments. Learn how to set up LINEJS in your browser using our complete guide and CDN for easy integration.

- Tags: how-to-guide
- Published: 2026-03-01

### [Client vs Base Client in LINEJS: Understanding the Two-Layer Architecture](/evex-dev/linejs/what-is-the-difference-between-the-client-and-base-client-modules-in-linejs)

Understand the difference between LINEJS client and base client modules. Discover how the high-level Client wraps the low-level BaseClient for easier API interaction and typed events.

- Tags: deep-dive
- Published: 2026-03-01

### [How to Handle Message Reactions and Read Receipts in LINEJS](/evex-dev/linejs/how-to-handle-message-reactions-and-read-receipts-in-linejs)

Learn to handle message reactions and read receipts in LINEJS using Message react and read methods or direct service access. Boost your LINE bot development.

- Tags: how-to-guide
- Published: 2026-03-01

### [How to Implement Multi-Device Sync and Session Management in LINEJS](/evex-dev/linejs/how-to-implement-multi-device-sync-and-session-management-in-linejs)

Learn to implement multi-device sync and session management in LINEJS using authToken, sessionId, and syncToken. Synchronize real-time state across Talk and Square.

- Tags: how-to-guide
- Published: 2026-03-01

### [How to Handle Errors and Implement Retry Logic in LINEJS: A Complete Guide](/evex-dev/linejs/how-to-handle-errors-and-implement-retry-logic-in-linejs)

Master LINEJS error handling and retry logic. Discover how RequestClient automates token refresh and API error management, supporting custom exponential-backoff patterns for robust applications.

- Tags: how-to-guide
- Published: 2026-03-01

### [How the Event Emitter Pattern Works in LINEJS: TypedEventEmitter Explained](/evex-dev/linejs/how-does-the-event-emitter-pattern-work-in-linejs)

Explore the TypedEventEmitter in LINEJS. Learn how this strictly-typed event emitter uses TypeScript generics for compile-time validation of event names and listener arguments.

- Tags: internals
- Published: 2026-03-01

### [How to Extend LINEJS with Custom Services: A Complete Developer Guide](/evex-dev/linejs/how-to-extend-linejs-with-custom-services)

Learn to extend LINEJS with custom services by implementing BaseService. Inherit HTTP handling, Thrift serialization, and encryption from BaseClient. Complete developer guide.

- Tags: how-to-guide
- Published: 2026-03-01

### [How to Handle Rate Limiting and Throttling in LINEJS](/evex-dev/linejs/how-to-handle-rate-limiting-and-throttling-in-linejs)

Learn to handle rate limiting and throttling in LINEJS by catching InternalError exceptions and implementing exponential backoff retry logic for robust API interactions.

- Tags: how-to-guide
- Published: 2026-03-01

### [MemoryStorage, FileStorage, and Custom Storage in LINEJS: A Complete Guide](/evex-dev/linejs/what-is-the-difference-between-memorystorage-filestorage-and-custom-storage-in-linejs)

Explore MemoryStorage, FileStorage, and custom storage in LINEJS. Understand their differences and choose the best strategy for your application's data persistence needs. Learn more now.

- Tags: how-to-guide
- Published: 2026-03-01

### [How to Implement Message Handlers for Encrypted Messages in LINEJS](/evex-dev/linejs/how-to-implement-message-handlers-for-encrypted-messages-in-linejs)

Learn to implement message handlers for encrypted messages in LINEJS using the E2EE class. Encrypt payloads and decrypt messages seamlessly for secure communication. Discover LINEJS encryption.

- Tags: how-to-guide
- Published: 2026-03-01

### [How to Manage E2EE Keys and Key Rotation in LINEJS: A Complete Guide](/evex-dev/linejs/how-to-manage-e2ee-keys-and-key-rotation-in-linejs)

Master E2EE key management and rotation in LINEJS. Learn to securely generate, store, and negotiate keys with Curve25519 and AES using the E2EE class.

- Tags: how-to-guide
- Published: 2026-03-01

### [Architecture of BaseClient and Its Services in LINEJS: Core Design Explained](/evex-dev/linejs/what-is-the-architecture-of-baseclient-and-its-services-in-linejs)

Explore the core architecture of BaseClient in LINEJS. Understand how this central class connects utilities and exposes typed services for LINE API endpoints.

- Tags: architecture
- Published: 2026-03-01

### [How to Use LIFF with LINEJS: Complete Integration Guide](/evex-dev/linejs/how-to-use-liff-line-frontend-framework-with-linejs)

Integrate LIFF with LINEJS using the built-in LiffService. Automate token issuance consent and message sending with the client liff API for seamless LIFF operations.

- Tags: how-to-guide
- Published: 2026-03-01

### [How to Send Text, Image, Video, and Location Messages with LINEJS](/evex-dev/linejs/how-to-send-different-message-types-text-image-video-location-with-linejs)

Learn to send text, image, video, and location messages using LINEJS. This guide shows you how to leverage client.base.talk.sendMessage with content types and payloads.

- Tags: how-to-guide
- Published: 2026-03-01

### [How to Handle Talk Events versus Square (OpenChat) Events in LINEJS](/evex-dev/linejs/how-to-handle-talk-events-versus-square-openchat-events-in-linejs)

Master LINEJS Talk and Square events with Client.listen(). Learn how to enable separate streams for personal chats and OpenChat to build robust LINE bots.

- Tags: how-to-guide
- Published: 2026-03-01

### [How the Thrift Protocol Handles LINE API Requests in LINEJS: A Complete Technical Guide](/evex-dev/linejs/how-does-the-thrift-protocol-handle-line-api-requests-in-linejs)

Discover how LINEJS employs the Thrift protocol for LINE API requests. Learn about serialization, HTTP transmission, and deserialization within this technical guide.

- Tags: deep-dive
- Published: 2026-03-01

### [Push Notifications vs Polling in LINEJS: Real-Time Event Handling](/evex-dev/linejs/what-is-the-difference-between-push-notifications-and-polling-in-linejs)

Discover the difference between push notifications and polling in LINEJS. Learn how push notifications stream events instantly via TCP/HTTP-2, while polling uses fixed timers for event fetching.

- Tags: deep-dive
- Published: 2026-03-01

### [How LINEJS Authentication and Token Refresh Work: A Complete Technical Guide](/evex-dev/linejs/how-does-authentication-and-token-refresh-work-in-linejs)

Learn how LINEJS authentication and token refresh work. Discover how LINEJS automatically refreshes your tokens using authToken and refreshToken for uninterrupted access.

- Tags: deep-dive
- Published: 2026-03-01

### [How to Implement Custom Storage Backends in LINEJS: A Complete Guide](/evex-dev/linejs/how-to-implement-custom-storage-backends-in-linejs)

Explore how to implement custom storage backends in LINEJS. Extend BaseStorage and pass your implementation to BaseClient for flexible data management. Learn more.

- Tags: how-to-guide
- Published: 2026-03-01

### [How E2EE Encryption Works in LINEJS Using Curve25519 and TweetNaCl](/evex-dev/linejs/how-does-e2ee-encryption-work-in-linejs-using-curve25519-and-tweetnacl)

Discover how LINEJS achieves E2EE encryption using curve25519 and tweetnacl. Explore X25519 key exchange and AES-256-GCM key derivation for secure messaging.

- Tags: deep-dive
- Published: 2026-03-01

### [How the LINEJS Client Listens to Messages and Events: A Deep Dive into the Polling Architecture](/evex-dev/linejs/how-does-the-linejs-client-listen-to-messages-and-events)

Learn how the LINEJS Client listens to messages and events. Explore its polling architecture, push stream management, and typed event emission for seamless communication.

- Tags: deep-dive
- Published: 2026-03-01

