VCC:给 UNIX 程序员的酷炫命令行聊天软件
创始人
2024-03-02 10:25:10
0次

VCC 是一个 UNIX/Linux 上的命令行聊天软件。

VCC 简介

我热爱 UNIX/Linux 和 C 语言,VCC(very cool chat)是我和其他人开发的一个业余(课余)作品。它是用 C 编写的,是一个运行在 UNIX/Linux 上的命令行聊天软件。VCC 目前还处于相当早期的阶段。这次将它介绍给大家是希望引来一些关注,无论是建议还是 bug 报告。当然,要是你对这个项目感兴趣,也非常欢迎你参与到开发当中。

我们开发它一方面是为了在命令行上更好的进行聊天对话,另一方面纯粹为了提升技术以及为了好玩。使用 VCC,你可以在写代码的时候快速切换到它所在终端标签聊天,这一直是我的一个梦想。

当前版本的 vcc 1.5.2/vccd 1.6.1 支持用户登录、广播消息、创建 / 加入会话,以及在会话中聊天。

VCC 采用 GPLv3 许可证,目前贡献者有我(intirain)以及 3swordman。

安装 VCC

VCC 分为客户端(即 vcc)以及服务端(即 vccd),托管在码云上:

将上述代码仓库克隆到本地后,进入该目录并且运行 make 来编译。你会得到一个可执行文件 vcc 或者 vccd。

运行 vcc 客户端

不提供参数直接运行客户端,会连接到我建立的默认服务器(124.223.105.230):

vcc $ ./vcc 

它将会提示你输入用户名以及密码。如果你是游客,则可使用游客账户(用户名和密码都是 guest)。而如果你想要获得一个账号,请向我发邮件( mailto:intirain@163.com )联系我。

如果你想要连接到自己那有着 128 个核心、1 TB 内存、SSD 1 YB 的小型服务器,请运行:

vcc $ ./vcc [服务器 IP 地址] # 当前还不支持域名

登录成功之后即可开始聊天,只需要输入消息并且回车即可。过长的信息(大约 200 字节以上)会被截断。

运行自己的 vccd 服务器端

你可以在 46 端口上运行自己的 vccd 服务。

以下命令需要 root 权限。

如果你是第一次运行 vccd,首先请执行安装脚本:

vccd $ sudo scripts/install

该脚本会创建文件 /etc/vccd-runtime,并且在其中记录了 vccd 的运行时目录的位置($HOME/.vccd-runtime)。该目录中保存着用户信息(当前还没有加入聊天记录功能),具体的位置是 users/用户名,每个文件都是一个采用本机字节序的结构体。

vccd $ sudo ./vccd

上列命令只是启动了 vccd 守护进程(严格来说,它只能算一个运行于后台的程序,并不是“守护进程”),而没有创建任何用户。运行如下命令可以创建用户(不需要重启 vccd):

vccd $ sudo scripts/adduser <用户名> <密码>

vcc 命令

vcc (客户端)支持命令,它的命令都以 - 开头。以下是当前 vcc (1.5.2)支持的所有命令,可以在连接到服务器的 vcc 客户端里输入 -help 命令查看:

#000 intirain$: -help
-help:	Show information about every message. 
-quit:	Disconnect to server and exit vcc. 
-ls:	List all users online now. 
-rate:	Change message refresh rate. 
-newse:	Create a new session. 
-currs:	Get current session id. 
-swtch:	Switch to another session. 
-lsse:	List all sessions created. 
#000 intirain$: 

以下是对每一条命令的详细描述:

命令名称描述
-help显示所有命令的帮助信息
-quit退出 vcc(相当于杀掉它)
-ls查看当前在线的所有用户
-rate设置刷新率
-newse新建一个会话
-currs查看当前会话 id(sid)
-swtch加入另一个会话
-lsse查看服务器上所有已经创建了的会话

说明:

  • 刷新率:vcc 需要时序性的请求服务器来获取新消息。刷新率以赫兹为单位,默认为 1 Hz (即每秒刷新一次)。刷新率不得超过 1000 Hz (即每一毫秒刷新一次)。
  • 会话:vcc 中的群聊叫做“会话”。会话是由一或多个用户组成的聊天室,0 号会话为大厅,所有人都在其中。会话无法退出。现在还不支持销毁一个会话,只能通过杀掉 vccd 来手动完成。
  • 会话不会退出,因此在加入另一会话后你仍在原先的会话中,仍会收到原先会话中的消息。但是你在加入另一会话后发送的消息,并不会被原先会话中的人收到。会话的创建者在会话创建后就移植在会话中。

vcc 还没有加入命令行参数的支持,也就是说所有的参数都需要你在键入该命令交互式输入。

VCC 的输出信息

VCC 使用了 ANSI 的 CSI 转义,但没有检查当前终端对该标准的支持。如果你在类似串口的终端上运行 vcc,将会直接得到没有渲染的转义字符。vcc 的配色是可更改的,默认的配色主题在 pretty.c中定义,是一个 C 语言结构体,该结构体在 include/vcc/pretty.h 中定义。

如果你觉得当前默认的配色不甚好看,完全可以在 pretty.c 中新建自己的配色,也可以复制并更改默认配色。我们也鼓励大家将自己认为好看的配色 PR 到码云仓库,我们在看到后会第一时间合并。

参与 VCC 的开发

vcc 以及 vccd 是以 GPL 许可证发布的,属于我们的 “inti 计划”旗下项目之一。我们鼓励你参与开发改进它,抱歉,我们无力为此支付报酬,参与开发是无偿的。

“inti 计划”是我们(其实也就俩人)创建的一个计划,目的是为了将优秀的自由软件(Linux 以及 GNU 计划)推向社会。我们计划开发的项目是 GNU 计划中所不包含的软件或者库,采用的编程语言为 C/C++。非常欢迎大家的加入。

VCC 还处于非常早期的开发阶段,但它应该已经具备了一个基本聊天软件的功能。我们当然希望你能够使用它、改进它,并且将它推广给身边使用 UNIX/Linux 的人们。目前,我们正在稳定当前的版本。将来,它也许会成为一个不错的社交软件,动态之类的高级功能也会实现。

顺便说一句,VCC 的 Windows 移植版本正在开发中,预计还需要几周的时间(毕竟我们只有周末才能编程 :( )。移植之后的 VCC 应该不会保留配色(因为 Windows 并不支持 CSI 转义)。


作者简介:intirain,喜欢 UNIX、x86、RISC-V 上的 C。


via: https://github.com/LCTT/Articles/pull/13

作者:intirain 编辑:wxy

本文由贡献者投稿至 Linux 中国公开投稿计划,采用 CC-BY-SA 协议 发布,Linux中国 荣誉推出

VCC

相关内容

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...