开源并发框架 Skynet 发布第一个正式版 v0.1.0

来源: 投稿
作者: C_Z
2014-04-23

距离 skynet 开源项目的公布 已经有 20 月+ 了,如果从闭源阶段算起,已经超过了 30 个月。在我们公司内部有五个项目使用 skynet 开发,据有限的了解,在我们公司之外,至少有两个正式项目使用了相当长的时间。是时候发布一个正式版了。

今天 skynet 的第一个正式版本 v0.1.0 发布了。

在发布之前,我花了几天时间帮助公司内部的项目合并代码。最后全部统一使用这个版本。而在此之前,每个项目都是由一个负责人 fork 出一份,根据项目需要自己修改。merge 工作总是做的痛苦不堪。

通过这次发布,希望未来可以统一维护基础框架部分。

我推荐的项目组织形式是,把 skynet 作为一个 submodule 引用,不要自行修改任何其中的代码。在项目目录中编写自己的 Makefile 调用 skynet 的 Makefile 编译出 skynet 的二进制文件。如果需要修改编译目标地址,可以在 make 调用时传入。skynet 的编译目标地址都是用宏指定的,覆盖比较容易。

如果要修改 skynet 自带的模块,可以在自己的项目中编写同名的模块,通过项目的 config 文件指定模块搜索次序来优先加载。或者复制一份换一个名字。目前 skynet 自带的模块极少,不太会对项目具体需求造成影响。


为了这次 release ,我删除了之前在 skynet 中遗留的很多目前我们项目已经不再使用(或不会对现有项目造成影响)的特性。比如组播模块、性能分析模块等。这样可以使 skynet 核心更加精简。

增加了一组新的 api snax 方便快速开发。

性能分析模块重新独立实现了,这次以一个 lua module (profile) 的形式注入 lua 原生的 coroutine 库。在 snax 里做了演示。

接下来,skynet github 的 master 分支在 v0.2 版发布之前,不再增加新特性。只会定期合并 bugfix ,这些小版本将被命名为 v0.1.x 。新的版本将在 dev 分支上进行。

暂时的开发计划是重新以上层模块的形式重新支持广播和组播特性。


关于文档、例子和 demo

由于精力有限,虽然一直有这个计划,但是未能实施。目前只能看我的 blog 来理清 skynet 的脉络了。我也会逐步把一些文档性质的 blog 整理到 github 的 wiki 上。

同时、使用 skynet 的人越来越多,我相信社区的力量会越来越大。

如果有问题,可以在 github 上提 Issue ,更欢迎提交 Pull-request 。skynet 项目发展到现在,已经合并过来至于 14 个不同同学的 PR 了,相信以后会更多。

最后,来个有中国特色的:

有热心的同学为 skynet 建立了 qq 交流群:340504014 。群内已经有许多有 skynet 使用经验的同学热心解答问题。当然,我也为此重新安装了 qq 。

展开阅读全文
30 收藏
分享
加载中
最新评论 (6)

C是简单,但是大家很多服务器都是C++的,看起来别扭。
前段时间用 C++11 写了一套,刚用在公司的项目上,过段时间看看效果如何吧。

2014-04-24 14:08
0
回复
举报

基于libcef开发的。

2014-04-24 09:47
0
回复
举报

引用来自“铂金眼”的评论

我想问一下,这个是什么东西?

大体上看应该是一个并发框架,和erlang类似的actor模式,我看他的blog里面底层也是用了erlang的一些思想吧。
2014-04-24 00:22
0
回复
举报

我想问一下,这个是什么东西?

2014-04-23 23:38
0
回复
举报

引用来自“cpp初学者”的评论

在云风的blog大致看了一下介绍,这个大神对erlang,lua都深入了解了,这种层次,我啥时候才能达到哟。- -

他好像是以前网易大话西游II,最早的开发员。离职前好像是技术经理。
2014-04-23 23:33
0
回复
举报

在云风的blog大致看了一下介绍,这个大神对erlang,lua都深入了解了,这种层次,我啥时候才能达到哟。- -

2014-04-23 23:19
0
回复
举报
更多评论
6 评论
30 收藏
分享
返回顶部
顶部