Turms IM Documentation

website·Indexed 29 days ago

https://turms-im.github.io/docs/

Documentation for Turms, an instant messaging server and client SDK. It covers server deployment, cluster architecture, storage service plugins, and security mechanisms. The client SDK provides consistent interfaces across JavaScript, Kotlin, Swift, and Dart. The documentation also includes guides on custom plugin development, Admin API (OpenAPI 3.0), and system resource management.

Tokens
227.7K
Snippets
671
Records
1.3K
Agent score
71%

What's inside Turms

  1. Overview of turms-admin

    turms-admin is a customized Single Page Application (SPA) for the Turms project. It serves as a visual Web interface for the Turms server's Admin API. It does not perform data collection, analysis, or alerting itself. Key functional areas include:

    • Cluster Management: Real-time monitoring, global configuration (zero-downtime updates), flight recorder management, and plugin management.
    • Content Management: CRUD operations for business data.
    • Client Blacklist: Management of the Turms server's global blacklist mechanism.
    • Permission Control: Management of administrator information and permissions.
    • Client Terminal: An integrated turms-client-js implementation for testing real client requests and server responses.
  2. Overview of Turms Cluster Architecture

    Turms implements a custom cluster architecture to avoid vendor lock-in and reduce operational complexity. The system is designed to be lightweight, high-performance (based on Netty), and relies on MongoDB for both the Distributed Configuration Center and Service Registration/Discovery.

    Key components include:

    • Node: Manages node information, lifecycle events, and schedules cluster services.
    • Config Service: A distributed configuration center implemented via MongoDB.
    • Discovery Service: Handles service registration, discovery, and leader election.
  3. Overview of Turms IM Group Features and Member Roles

    Turms IM supports group management with the following member roles:

    • Group Owner (群主)
    • Administrator (管理员)
    • Regular Member (普通成员)
    • Guest (游客)
    • Anonymous Guest (匿名游客)
  4. Overview of Message-related Features

    Turms supports several advanced messaging capabilities:

    • Burn after reading: Messages are automatically destroyed on the recipient's client after a preset or default duration.
    • Message Forwarding: Ability to forward messages to other users or groups.
    • Message Recall: Withdrawing delivered messages (configurable duration).
    • Message Editing: Modifying sent messages.
    • Read Receipts: Tracking and notifying read status via readMessage().
    • Typing Indicators: Notifying others when a user is typing.
    • @Mentions: Triggering callbacks for mentioned users.
  5. Overview of turms-admin

    turms-admin is a customized backend administration single page application (SPA) designed as a visual Web interface for the Turms server-side Admin API. It does not perform data collection, analysis, or alarm functions itself, but provides management for: cluster monitoring and configuration, content management, client blacklists, permission control, and a client terminal for testing requests.
  6. Overview of turms-chat-demo-flutter

    The turms-chat-demo-flutter project is a cross-platform IM client demo designed for Turms users. It serves as a reference implementation that separates UI from business logic, allowing developers to either use it with a Turms server or integrate it with their own custom IM server. The project is licensed under the permissive Apache 2.0 license.
  7. Overview of Turms for Custom IM Development

    Turms is an open-source instant messaging (IM) server designed for medium and large-scale deployment using modern architecture. It is suitable for developers who need a controllable, high-performance foundation for custom IM services rather than starting from scratch. Key advantages include:

    • Architecture: Based on standard commercial IM architecture, reducing the need for initial design work.
    • Licensing: Developed under the Apache V2 protocol, ensuring 100% open-source controllability.
    • Performance: High code quality with refactored or self-developed critical dependencies (e.g., custom log and cluster implementations) to optimize the Java ecosystem's performance.
    • Documentation: Detailed design documents that explain not only 'how' but 'why' specific architectural decisions were made (e.g., message awareness, observability, and sensitive word filtering using the AC automaton algorithm).
  8. Overview of Turms Custom Development

    Turms is an open-source instant messaging (IM) server designed for medium and large-scale deployments using modern architecture. It is developed under the Apache V2 protocol and provides a comprehensive foundation for developers to build custom IM services without starting from scratch. Key advantages for custom development include its alignment with commercial IM standards, lightweight module implementation, and detailed design documentation that explains the 'why' behind architectural decisions.
  9. Overview of Turms Cluster Architecture

    Turms uses a custom-built cluster implementation instead of third-party services (like ZooKeeper or Eureka) to ensure high customization, lower learning curves, and reduced operational complexity. The cluster logic is implemented in im.turms.server.common.infra.cluster and configured via im.turms.server.common.infra.property.env.common.cluster.

    The architecture centers around a Node instance present in every server, which manages node information, lifecycle events, and schedules cluster services.

  10. Overview of Turms Text Content Moderation

    Turms provides text-based content moderation and anti-spam capabilities via the turms-plugin-antispam plugin. Note that Turms does not support, and will not support, detection for images, videos, or voice content. The turms-plugin-antispam plugin offers free, fast local detection by traversing the target string once, though it does not provide a built-in thesaurus of sensitive words.
  11. Overview of Turms sensitive word filtering

    Turms provides text-based anti-spam detection via the turms-plugin-antispam plugin. It is designed for high-speed, local matching using a Double-Array Trie AC automaton algorithm. Note that Turms does not support, and has no plans to support, anti-spam detection for images, videos, or voice messages.
  12. Overview of turms-chat-demo-flutter

    The turms-chat-demo-flutter project is a cross-platform IM client demo designed to provide a reference implementation for users of the Turms IM solution. It is intended as a starting point for custom development, emphasizing the separation of UI and business logic so that developers can either use the Turms server or integrate their own IM backend. The project is licensed under Apache 2.0.