发条式泥浆服务器

cwmud的Python项目详细描述


可扩展的模块化泥浆服务器。

Latest version on PyPIMIT licenseSupported Python versionsLatest build via CircleCILatest code coverage via Codecov

clockwork是一个纯python mud服务器,设计时考虑到模块性和易开发性。

当前状态

这还不是一个可行的mud服务器。有账户创建,基本角色创建,房间,谈话,四处走动,但就是这样。管理命令上还没有权限控制,所以任何人都可以做他们想做的事情(这很好,因为还没有管理的概念)。

reload命令因最近对客户端/协议服务所做的更改而中断(服务器重新加载,但任何连接的客户端都将被转储到断开连接的I/O的极限状态),但应该在下一个次要版本中修复。

总之,目前正在建设中。

许可证

时钟使用麻省理工学院的许可证。有关详细信息,请参见license file

安装

首先,highly建议您设置一个virtualenv在中运行时钟:

$ cd mymud
$ virtualenv -p python3 --no-site-packages .venv
$ source .venv/bin/activate

然后,时钟可以通过pip安装:

$ pip install cwmud

注意:如果不使用virtualenv(您应该!),则需要使用提升的权限(sudo)运行此命令。

依赖关系

时钟在Python3.4上运行,尚未在任何更高版本上测试。目前还没有支持早期版本的计划。

时钟需要运行的Redis服务器和消息的redis-py绑定包,以及密码哈希的bcrypt(bcrypt反过来需要libffi)。它还利用了miniboa-py3,这是miniboa的python 3端口,是一个小型的异步telnet服务器。我们修改后的miniboa副本包含在cwmud/libs中。

要在debian/ubuntu上安装libffi库,请运行:

$ sudo apt-get install libffi-dev

有关安装和配置redis的详细信息,请参阅Redis Quick Start指南。

配置

所有安装后配置设置都存储在cwmud/settings.py中。

您可能需要更改的一些关键设置:

^{tt4}$: The IP to bind the listener to, default is ^{tt5}$ (127.0.0.1), change to ^{tt6}$ to allow external connections.

^{tt7}$: The port to listen for new Telnet connections on, default is ^{tt8}$.

^{tt9}$: The path for the server log, defaults to ^{tt10}$ (rotates daily at midnight, which are also settings that can be changed).

^{tt11}$: The path to a folder where local data should be loaded from and saved to (serialized objects, flat text files, etc.), defaults to ^{tt12}$.

这些(和其他)选项也可以在每次运行时使用命令行选项进行设置(见下文)。

用法

要启动时钟服务器,只需运行:

$ python -m cwmud

有关用法和选项的完整列表,请通过运行查看帮助输出:

$ python -m cwmud --help

启动后,服务器将准备好接受您在cwmud/settings.py中指定的任何地址和端口上的telnet连接(默认为localhost和端口4000)。

测试

时钟包括一套pytest格式的单元测试。要运行测试套件,首先需要安装pytest和我们使用的插件(coverage、flake8、timeout)。要安装所有测试套件依赖项,请运行:

$ pip install -r tests/requirements.txt

注意:如果不使用virtualenv(您应该!),则需要使用提升的权限(sudo)运行此命令。

安装pytest后,您可以通过我们的makefile运行测试套件:

$ make tests

如果没有make可用(make.bat文件正在为windows用户工作),可以直接调用pytest,如下所示:

$ py.test --flake8 cwmud tests

开发

在提交任何请求或提交更改之前,请阅读style guide以了解编码约定和样式指导原则。

联系和支持

你可以在will@whutch.com给我发邮件提出问题和评论。你也可以在Mud Coders Slack group上找到我kazan(你可以在Mud Coders Guild blog上找到注册页面)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在JUnit5中定义优先级   Web驱动程序将焦点切换到iframe的java困难   java JFileChooser没有文件名文本字段选项   本地化是否可以回退到Java中resourcebundle的宏语言(例如,nynorsk>norsk)   禁用时Java断言的性能拖动   未考虑执行中的java jsonschema2pojo maven插件配置   java微调器。setSelection未调用setOnItemSelectedListener函数   序列化XStream:序列化java的反序列化。sql。时间导致错误   java无法理解为什么“ajpnio8009execXX”线程在AbstractQueuedSynchronizer$ConditionObject上阻塞/等待时间。等候   Java date给我的格式是mm/dd/yyyy,其中jquery datepicker的日期格式是dd/mm/yyyy   jsf如何用javaweb应用程序在客户端重写csv文件   雅加达ee Java邮件Api,无法从outlook客户端读取“.msg附件”   java PreparedStatement性能调优