collie

D语言高性能网络应用框架
授权协议 Apache
开发语言 D语言
所属分类 程序开发、 高性能网络开发库
软件类型 开源软件
地区 国产
投 递 者 席俊达
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

D语言的高性能跨平台异步网络库,提供pipeline模式,类似 Java 的 Netty 框架。

Collie 是一个异步的,事件驱动的网络编程框架和工具,直接对接操作系统底层高效的事件接口kqueue/epoll/iocp等,使用 Collie 可以快速开发出可维护的,高性能、高扩展能力的协议服务及其客户端应用。

也就是说,Collie 是一个基于Reactor异步模型的客户端和服务器端编程框架,使用 Collie 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。

Collie相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。

【快速】和【简单】并不意味着会让你的最终应用产生维护性或性能上的问题。Collie 是一个吸收了多种协议的实现经验,这些协议包括HTTP/MQTT/SMTP/FTP,各种二进制,文本协议,并经过相当精心设计的项目,最终,Collie 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。

现有主要功能:

  • TCP异步通信
  • UDP通信
  • SSL加密协议
  • 定时器
  • http 编解码
  • mqtt 编解码
  • flatbuffers 编解码

架构图如下:

  • collie需要学习的知识点: API Reference Basic Tutorial Performance Report 基础教程 性能报告 基础部分: Drawing a Rectangle Drawing a Polyline Drawing a Circle How to set a velocity and a force in a DisplayObject Repeat Time

 相关资料
  • 我正在研究一个基于代理的流行病模型。这个想法是单个代理根据他们在网络中观察到的情况(基于距离)做出决定。我在每个代理中都有几个功能,可以动态更新受感染接触者的数量,接触者表现出特定行为等。 下面的代码用于计算代理网络中受感染的联系人。 至少还有3个这样的函数可以保持表示代理网络中其他功能的其他代理的计数。现在,当我 有没有一种计算效率更高的方法来跟踪更大人口的网络统计数据?

  • 问题内容: 我正在选择一个网络库来实现不能花费任何微秒时间的客户端/服务器系统。它将实现自己的协议来发送和接收消息。我正在寻找一个好的NIO框架,该框架将使我能够轻松开发服务器和客户端,而不必过多担心低层选择器的细节。每个人都向我推荐Netty,但在向团队提出框架之前,我想尝试2或3个其他选择。我不太喜欢Netty的一件事是它如何使用自己的ByteBuf实现和引用计数来处理ByteBuffer。谁

  • HTTP 分布式系统

  • HTTP 超文本传输协议 (HTTP) 是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是万维网的数据通信的基础。 Requests Python 基本的 urllib2 模块提供了大部分你所需要的 HTTP 功能,但它的 API 彻底被打乱了。它是在一个和现今完全不同的时期 --- 以及一个不一样的网络被构建的。一个简单的任务便需要耗费他大量的工作 (即使重写函数没用)。 Req

  • 摘要 本文描述了如何在 RT-Thread 中利用标准 BSD Socket API 来开发网络应用。并给出了在正点原子 STM32F4 探索者开发板上运行 NTP(通过网络获取时间)和 MQTT(通过 MQTT 收发数据) 的代码示例。 简介 越来越多的单片机需要接入以太网来收发数据,市面上也有非常多的接入方案,可以用单片机加自带硬件协议栈的 PHY 芯片来接入网络,也可以单片机跑软件协议栈加

  • 使用 app.getLocale() 接收返回语言环境值 Electron 通过 Chromium的 l10n_util 库获取应用的语言环境。 以下是语言列表: 语言代码 语言名称 af 南非荷兰语 am 阿姆哈拉语 ar 阿拉伯语 az 阿塞拜疆 be 白俄罗斯 bg 保加利亚语 bh 比哈里 bn 孟加拉语 br 布列塔尼 bs 波斯尼亚语 ca 加泰罗尼亚语 co 科西嘉 cs 捷克语 c

  • 根据 Go 开发团队和基本的算法测试,Go语言与C语言的性能差距大概在 10%~20% 之间。虽然没有官方的性能标准,但是与其它各个语言相比已经拥有非常出色的表现。 时下流行的语言大都是运行在虚拟机上,如: Java 和 Scala 使用的 JVM, C# 和 VB.NET 使用的 .NET CLR。尽管虚拟机的性能已经有了很大的提升,但任何使用 JIT 编译器和脚本语言解释器的编程语言(Ruby

  • 准备 测试环境 在以下几种环境下进行测试: Kubernetes集群node节点上通过Cluster IP方式访问 Kubernetes集群内部通过service访问 Kubernetes集群外部通过traefik ingress暴露的地址访问 测试地址 Cluster IP: 10.254.149.31 Service Port:8000 Ingress Host:traefik.sample-