inode即时通讯服务器。纯Go后端(许可证GPL3.0),Java、Javascript和Swift客户端绑定,以及对C++、C#、Go、Java、Node、PHP、Python、Ruby、Objective-C等的gRPC客户端支持.(许可证Apache2.0)。有线传输是基于websocket的JSON(也可以使用长轮询),用于自定义绑定,或者是带有gRPC的protobuf。持久存储是MySQL、MongoDB或RethinkDB中的任何一种。通过编写自定义适配器可以支持其他数据库。
Tinode不是XMPP/Jabber。它与XMPP不兼容。它旨在替代XMPP。从表面上看,它很像开源的WhatsApp或Telegram。
0.18版。这是Beta质量的软件:功能完整且稳定,但可能存在一些错误或缺少功能。
XMPP的承诺是提供联合即时消息传递:任何人都可以启动一个能够与世界上任何其他XMPP服务器交换消息的IM服务器。不幸的是,XMPP从未兑现这一承诺。即时通讯工具仍然是一堆互不相容的围墙花园,类似于年代后期的AoL对开放互联网的看法。
该项目的目标是实现XMPP的最初愿景:为联合即时消息创建一个现代开放平台,重点是移动通信。第二个目标是创建一个去中心化的IM平台,让政府更难追踪和阻止。
一个明确的非目标:我们不是在构建另一个Slack替代品。
支持的特征
多个原生平台:安卓(Java)iOS(斯威夫特)网页(React.js)可编写脚本的命令行(Python)
用户特点:一对一和群发消息。语音留言。具有无限数量的只读订阅者的频道。具有各种操作权限的精细访问控制。用户搜索/发现。丰富的消息格式markdown-style:*style*→style,内嵌图片,文件附件。适用于聊天机器人的表单和模板化响应。已验证/员工/不受信任的帐户标记。消息状态通知:消息传递到服务器;接收和阅读通知;键入通知。联系人列表中的最新消息预览。服务器生成的人员状态通知,群聊。转发和回复消息。
行政:具有各种操作权限的精细访问控制。支持自定义身份验证后端。能够在服务器端阻止不需要的通信。匿名用户(对于与聊天技术支持相关的用例很重要)。扩展功能的插件,例如,支持审核或聊天机器人。
性能、可靠性和发展:带故障转移的分片集群。使用本地文件系统或AmazonS3(其他存储系统可以通过插件支持)存储和带外传输大型对象,如图像或文档文件。JSON或protobuf版本3有线协议。各种编程语言的绑定:没有外部依赖的Javascript。Java依赖于Jackson和Java-Websocket。适用于Android但没有AndroidSDK依赖项。没有外部依赖的Swift。C/C++、C#、Go、Python、PHP、Ruby和许多其他使用gRPC的语言。数据库后端的选择:MySQL、RethinkDB、MongoDB。