chat README

The project's README from github.com/tinode/chat. As one markdown file: README.md.

Tinode Instant Messaging Server

Instant messaging full stack. Backend in pure Go (license GPL 3.0), clients for Android (Java), iOS (Swift), and web (ReactJS), as well as gRPC client support for C++, C#, Go, Java, Node, PHP, Python, Ruby, Objective-C, etc (all clients licensed under Apache 2.0). Wire transport is JSON over websocket (long polling is also available) or protobuf with gRPC.

This is beta-quality software: feature-complete and stable but probably with a few bugs or missing features. Follow instructions to install and run or use one of the cloud services below. Read API documentation.

Tinode is not XMPP/Jabber. It is not compatible with XMPP. It's meant as a replacement for XMPP. On the surface, it's a lot like open source WhatsApp or Telegram.

Why?

The promise of XMPP was to deliver federated instant messaging: anyone would be able to spin up an IM server capable of exchanging messages with any other XMPP server in the world. Unfortunately, XMPP never delivered on this promise. Instant messengers are still a bunch of incompatible walled gardens, similar to what AoL of the late 1990s was to the open Internet.

The goal of this project is to deliver on XMPP's original vision: create a modern open platform for federated instant messaging with an emphasis on mobile communication. A secondary goal is to create a decentralized IM platform that is much harder to track and block by the governments.

An explicit NON-goal: we are not building yet another Slack replacement.

Installing and running

See general instructions or docker-specific instructions.

Getting support

Helping out

Public service

A public Tinode service is available. You can use it just like any other instant messenger. Keep in mind that demo accounts present in sandbox are not available in the public service. You must register an account using valid email in order to use the service.

Web

TinodeWeb, a single page web app, is available at https://web.tinode.co/ (source). See screenshots below.

Android

Tinode for Android a.k.a Tindroid is stable and functional (source). See the screenshots below. A debug APK is also provided for convenience.

iOS

Tinode for iOS a.k.a. Tinodios is stable and functional (source). See the screenshots below.

Demo/Sandbox

A sandboxed demo service is available at https://sandbox.tinode.co/.

Log in as one of alice, bob, carol, dave, frank. Password is <login>123, e.g. login for alice is alice123. You can discover other users by email or phone by prefixing them with email: or tel: respectively. Emails are <login>@example.com, e.g. [email protected], phones are +17025550001 through +17025550009.

When you register a new account you are asked for an email address to send validation code to. For demo purposes you may use 123456 as a universal validation code. The code you get in the email is also valid.

Sandbox Notes

Features

Supported

Planned

Translations

All client software has support for internationalization. The following translations are provided:

Language Server Webapp Android iOS
English ✓ ✓ ✓ ✓
Arabic ✓
Chinese simplified ✓ ✓ ✓ ✓
Chinese traditional ✓ ✓ ✓ ✓
French ✓ ✓ ✓
German ✓ ✓
Hindi ✓
Indonesian ✓ ✓
Italian ✓ ✓ ✓
Korean ✓ ✓
Portuguese ✓ ✓ ✓
Romanian ✓ ✓
Russian ✓ ✓ ✓ ✓
Spanish ✓ ✓ ✓ ✓
Thai ✓
Ukrainian ✓ ✓ ✓ ✓
Vietnamese ✓ ✓

More translations are welcome. In addition to languages listed above, particularly interested in Bengali, Urdu, Japanese, Turkish, Persian.

Third-Party

Projects

Licenses

Screenshots

Android

Android screenshot: list of chats Android screenshot: one conversation Android screenshot: video call

iOS

iOS screenshot: list of chats iOS screenshot: one conversation iOS screenshot: video call

Desktop Web

Desktop web: full app

Mobile Web

Mobile web: contacts Mobile web: chat Mobile web: topic info

SEO Strings

Words 'chat' and 'instant messaging' in Chinese, Russian, Persian and a few other languages.

chat (tinode/chat)

Searching Database…

13.5K ·GitHub
这是什么?Tinode 是一个开源即时通讯平台:用 Go 编写的聊天服务器,配有 Android、iOS、网页原生客户端,以及可编写脚本的命令行客户端——就像自己搭建的 WhatsApp 或 Telegram,而且明确表示不是又一个 Slack 替代品。
它是一个单独的应用,还是一个带独立客户端的服务器?是一个带独立客户端的服务器:TinodeWeb(React 单页应用)、Android 端的 Tindroid、iOS 端的 Tinodios、一个 Python 命令行客户端,另外还有面向 C++、C#、Go、Java、Node、PHP、Python、Ruby 等语言的 gRPC 绑定。
自己搭建之前,我怎么先试用一下?可以使用公共服务或沙箱演示:登录网页应用(用户名 alice123,密码 123),与其他演示用户或 Tino 机器人聊天。如果要搭建自己的实例,请按照安装说明操作,或直接运行 Docker 镜像。
运行自己的服务器需要什么?只需要 Go 后端加一个受支持的数据库:MySQL(或 MariaDB/Percona)、PostgreSQL 或 MongoDB。RethinkDB 也可以用,但对其的支持已不再维护,将在 2027 年移除。
它可以直接用于生产环境吗?它处于 Beta 水平:功能完整且稳定,但偶尔会有 bug 或缺失的功能。联邦、端到端加密和全文搜索仍列为计划中,尚未上线。
它能和 Jabber 这类 XMPP 服务器配合使用吗?不能——Tinode 与 XMPP 不兼容。它的定位是取代 XMPP,旨在实现 XMPP 最初的愿景:打造一个以移动通信为重点的现代开源消息平台。
它支持端到端加密吗?暂时还不支持。一对一聊天的 OTR 端到端加密以及消息静态加密都列在路线图的 Planned(计划中)板块,所以目前的安全性依赖于传输层加密。
这些应用被翻译成了哪些语言?所有客户端都做了国际化,翻译涵盖英语、阿拉伯语、中文(简体和繁体)、法语、德语、印地语、印尼语、意大利语、韩语、葡萄牙语、罗马尼亚语、俄语、西班牙语、泰语、乌克兰语和越南语;作者特别希望有人帮忙翻译孟加拉语、乌尔都语、日语、土耳其语和波斯语。
分享的图片和文件存在哪里?图片和文档这类大对象在带外传输,存储在本地文件系统或 Amazon S3 上,还可以通过媒体处理器接入其他存储系统。
它能扩展到多台服务器吗?可以——后端支持带故障转移的分片集群,因此你可以运行一个服务器集群,而不是单个整体实例。
Creator
tinode
Size
69.9 MB
Stars
13.5K
Age
11y
Commits · 90 Days