棋牌的胡牌算法 QiPai
棋牌的胡牌算法,特殊牌型判断算法 1、跑胡子算法 实现: 2、高效的麻将胡牌算法,能处理任意张赖子: 速度:1S左右处理100万次每次四个赖子的麻将判胡;5秒处理1亿次八个赖子判胡(golang虚拟机上实测)。 实现: 3、无敌的拆牌判胡算法,不占用额外内存,速度、简洁度超过查表法。支持任意赖子数量。 4、特殊牌型判断:一条龙、掐张、七对、碰碰胡、十三幺、单吊、大吊车、清一色、缺门、门清。阅读全文
棋牌的胡牌算法,特殊牌型判断算法 1、跑胡子算法 实现: 2、高效的麻将胡牌算法,能处理任意张赖子: 速度:1S左右处理100万次每次四个赖子的麻将判胡;5秒处理1亿次八个赖子判胡(golang虚拟机上实测)。 实现: 3、无敌的拆牌判胡算法,不占用额外内存,速度、简洁度超过查表法。支持任意赖子数量。 4、特殊牌型判断:一条龙、掐张、七对、碰碰胡、十三幺、单吊、大吊车、清一色、缺门、门清。阅读全文
Puffs,全名为 Parsing Untrusted File Formats Safely ,是 Google 开源的一个用于特定领域的语言和库,可安全地解析不受信任的文件格式,包括图像、音频、视频、字体和压缩档案等。 与 C 语言不同,Puffs 对于缓冲区溢出、整数算术溢出和空指针解引用是非常安全的。Puff 和其他内存安全语言之间的主要区别在于,所有这些检查都是在编译时完成的,而不是在运行时完成的。 Puffs 旨在像 Go 或 Rust 一样生成安全的软件库,同时能像 C 一样快...阅读全文
gops 是列出和诊断当前在您的系统上运行的 Go 进程的命令。 对于启动诊断代理的进程,gops 可以报告其他信息,例如当前堆栈跟踪,Go 版本,内存统计信息等。 为了启动诊断代理,请参阅[hello示例](https://github.com/google/gops/blob/master/examples/hello/main.go)。阅读全文
Vuls 是一款适用于 Linux / FreeBSD 的漏洞扫描程序,无代理,采用 golang 编写。 对于系统管理员来说,每天必须执行安全漏洞分析和软件更新都是一个负担。为避免生产环境宕机,系统管理员通常选择不使用软件包管理器提供的自动更新选项,而是手动执行更新。这会导致以下问题: 系统管理员必须不断注意NVD(National Vulnerability Database)或类似数据库中的新漏洞。 如果服务器中安装了大量软件,系统管理员可能无法监视所有软件。 执行分析以确定受...阅读全文
公证项目包括服务器和客户端,用于运行和与受信任的集合进行交互。 有关详细信息,请参阅[服务体系结构文档](https://github.com/docker/notary/blob/master/docs/service_architecture.md)。 公证人的目标是使互联网更加安全,方便人们发布和验证内容。 我们经常依靠TLS来保护与内部存在缺陷的Web服务器的通信,因为服务器的任何妥协都可以使恶意内容替代合法内容。 使用公证人,发布商可以使用高度安全的密钥离线签名内容。 一旦发布商准...阅读全文
nuclio 是一个新的 Serverless 项目,用于高性能事件和数据处理。 nuclio 是可扩展的,使用模块化和分层方法以支持各种各样的事件和数据源。你可以使用 nuclio 作为独立的二进制文件(例如,用于 IoT 设备),将其打包到 Docker 容器中,或将其与诸如 Kubernetes 等容器协调器集成。 nuclio 非常快。单功能实例可以每秒处理数十万个 HTTP 请求或数据记录。 比其他一些框架快 10-100 倍,具体可查看其[工作原理](https://gi...阅读全文
集成多种 NOSQL 方案的统一 SQL 代理中间件 Sql查询代理到 Elasticsearch,Mongo,Kubernetes,BigTable等 将不同的数据源和文件统一到数据的单一联合视图中,并使用SQL进行查询,且无需复制到数据仓库中。 Mysql兼容联合查询引擎到Elasticsearch,Mongo,Google Datastore,Cassandra,Google BigTable,Kubernetes,基于文件的资源。这个查询引擎托管一个 mysql 协议侦听器,它...阅读全文
WMQ是用golang基于RabbitMQ实现的消息中间件,在系统架构对解耦现有业务起到至关重要的作用,服务基于HTTP的API方式具有跨语言的特点,接入十分简单.能够很好的解决并发控制,异步任务,以及消息订阅与分发.工作原理架构图如下: ![image](https://static.oschina.net/uploads/space/2017/1017/110028_7bml_3703517.png) 特点: 跨语言,基于HTTP协议. 高性能,测试环境下消息生产速率达到3000...阅读全文
根据 WMQ 服务提供的后台管理系统 实现了对WMQ 服务的用户,节点,消息,消费,日志的统一操作管理 消息管理 ![image](https://static.oschina.net/uploads/space/2017/1013/182219_ENNq_3703517.png) 消费管理 ![image](https://static.oschina.net/uploads/space/2017/1013/182336_pTMW_3703517.png) 基于 RabbitMQ ...阅读全文
OpenPitrix 是一个将应用程序打包和部署到诸如 QingCloud,AWS,Kubernetes 等多个云环境中的开放平台. Pixrix [Paitriks] 是指 PaaS 和 IaaS 的矩阵,可以轻松开发,部署,管理各种应用程序,包括各种 PaaS 运行时环境,即 Pitrix = PaaS + IaaS + Matrix。 它也意味着一个包含无尽的矩阵(PI - 希腊字母“π”)应用程序。 设计: 基本思想是解耦应用程序存储库和运行时环境。 应用程序可以运行的运行时环境...阅读全文
Cameradar 是一个开源的访问 RTSP 流媒体的工具,可监控使用实时流传输协议(RTSP)的摄像机。 功能: 检测任何可访问的目标主机上开启的 RTSP 主机 检测正在进行流传输的设备 启动自动的字典攻击以获取 stream route 信息(如 `/live.sdp`) 启动自动的字典攻击以获取摄像机的用户名和密码 获取完整和用户友好的报告 ![image](https://static.oschina.net/uploads/space/2017/101...阅读全文
Proxy 是 golang 实现的高性能 http,https,websocket,tcp 代理服务器,同时支持内网穿透。 ## Features - 链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理. - 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征. - 智能HTTP代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;...阅读全文
一个可嵌入,持久,简单,快速的键值(KV)存储,纯 Go 编写。 Badger 在进行随机读取时比 RocksDB 快至少 3.5 倍。 对于 128B 到 16KB 之间的数据量,数据加载速度是 RocksDB 的 0.86x - 14 倍,随着数字大小的增加,Badger 获得了很大的发展。 另一方面,Badger 在范围键值迭代方面目前较慢,但是这有很大的优化空间。 纯 Go 编写 使用最新的研究来构建最快的键值存储。 简单 以 SSD 为中心的设计 ![image](https...阅读全文
Finn 是在 Go 中构建 Raft 实现的一个快速而简单的框架。 它使用 Redcon 进行网络传输和 Hashicorp Raft。 还可以选择使用 LevelDB,BoltDB 或 FastLog 进行日志持久化。 用于快速创建容错群集的简单 API 使用 raft-redcon 传输的快速网络协议 用于日志持久性的可选后端。 LevelDB,BoltDB 或 FastLog 可调一致性和耐久性标准 全功能的实例帮助 jumpstart 集成 内置 raft 命令,用于监视和...阅读全文
Prose 是一款用于Go 语言的文本处理库(主要是英文),支持 okenization(分词)、part-of-speech tagging(词性标注)、named-entity extraction(命名实体提取)等。 [Tokenizing](https://github.com/jdkato/prose#tokenizing-godoc) [Tagging](https://github.com/jdkato/prose#tagging-godoc) [Transformin...阅读全文
gluster 是一款轻量级高性能的分布式集群管理软件,实现了分布式软件架构中的常用核心组件,包括: 服务配置管理中心 服务注册与发现 服务健康检查 服务负载均衡 gluster 的灵感来源于 ZooKeeper 及 Consul ,它们都实现了类似的分布式组件,但是 gluster 更加的轻量级、低成本、易维护、架构清晰、简单实用、性能高效,这也是 gluster 设计的初衷。 开源、免费、跨平台; 使用 RAFT 算法实现分布式一致性; 使用通用的 REST 协议提供 API...阅读全文
一款 SSH 包装工具,以列表方式展示需要访问服务器资源 ![image](https://github.com/blacknon/lssh/raw/master/example/lssh.gif) 需要以下命令 ssh script (日志启用) awk (日志启用)阅读全文
Kubed(发音为“Cube-dee”),是由针对容器应用开发的协同编码平台供应商 AppsCode 开发的一个 [Kubernetes](https://www.oschina.net/p/kubernetes) 群集运算符守护进程。 **功能特性:** Kubed 可定期对 Kubernetes 集群对象进行快照。 Kubed 为已删除和已更新的 Kubernetes 对象提供临时存储站。 Kubed 可在命名空间中保持 ConfigMaps 和 Secrets 同步。 ...阅读全文
Go 语言编写轻量级网络库 (grapeNet is a lightweight and Easy Use Network Framework) 可用于游戏服务端、强网络服务器端或其他类似应用场景,每个模块单独提取并且拥有独立的使用方法,内部耦合性较轻。 其实 GO 语言曾经有过很多强架构的框架,比如GOWOLRD之类的,已经足够了,但是我会将库用于各种轻量级应用不需要过于复杂的内容,所以我设计了GrapeNet,目的是模块独立化。 你可以拆开只使用其中很小的模块,也可以组合成一个服务端,并...阅读全文
burrowx 是一个简单、轻量的 Kafka 状态信息监视器,目前使用 influxdb 存储指标。burrowx 受到 [Burrow](https://github.com/linkedin/Burrow) 的启发,但比它更快、更干净和更稳定。burrowx 是 influxdb 和 grafana 的良好整合。 **运行截图:** ![image](https://static.oschina.net/uploads/space/2017/0808/145624_ope0_272...阅读全文
Minikube 是一个易于在本地运行 Kubernetes 的工具,可在你的笔记本电脑上的虚拟机内轻松创建单机版 Kubernetes 集群。便于尝试 Kubernetes 或使用 Kubernetes 日常开发。 [kubectl](https://kubernetes.io/docs/tasks/kubectl/install/) macOS [xhyve driver](https://github.com/kubernetes/minikube/blob/master/doc...阅读全文
**GoWorld是一个使用Golang实现的可扩展的分布式游戏服务器引擎,并支持游戏逻辑的热更新。** ![image](http://goworldgs.com/static/goworld_arch.png) GoWorld架构图 一个GoWorld系统包括一个dispatcher进程、一个或者多个game进程以及一个或者多个gate进程。dispatcher负责game之间以及gate和game之间的消息转发,并对一些基础功能提供支持。Game进程负责Entity对象的管理和所...阅读全文
还在为写**CURD**而烦躁吗,还在为代码格式**规范统一**而烦恼吗,还在为没时间找女朋友找借口吗? **BeegoCURD**基于Beego,Bootstrap3,JQuery三个**牛哄哄**的框架生成MVC代码,让你不用一秒(视硬件配置而定)就能快速构建基于Golang 的增删改查Beego项目。 由于这个工具是为了上班**偷懒**而写的,使用情况是根据自身定制,所以开源出来给大家提供建议(代码很烂)或者一起**偷懒**。 项目地址:http://git.oschina.net/...阅读全文
![image](https://raw.githubusercontent.com/hunterhug/GoSpider/master/tubo.png) 万维网网络机器人,又称蜘蛛,爬虫,原理主要是通过构造符合HTTP协议的网络数据包,向指定主机请求资源,获取返回的数据.万维网有大量的公开信息,人力采集数据费时费力,故激发了爬虫的产业化. 批量获取公开网络数据并不违反,但由于无差别性,无节制,十分暴力的手段会导致对方服务的不稳定,因此,大部分资源提供商对数据包进行了某些过滤,在此背景下...阅读全文
cronsun 是一个分布式任务系统,单个结点和 `*nix` 机器上的 `crontab` 近似。支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 `crontab` 一个不错的选择。 cronsun 是为了解决多台 `*nix` 机器上`crontab` 任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死机的时候可以自动调度到正常的节点执行)。 cronsun 是在管理后台添加任务的,所以一旦管理后台泄露出去了,则存在一定的危险性,所以`cro...阅读全文
Dolores试图成为一套完整的企业通信解决方案,一个完整的企业沟通工具(以下简称企业IM)至少需要支持以下几个功能:IM消息服务、组织架构管理、工作流集成 实时消息这一块有很多开源的解决方案比如[XMPP](https://xmpp.org/),但是企业通信对IM这块的可靠性要求很高,所以目前我们打算使用比较成熟的云服务,后期如果时间比较充裕,考虑开发自己的IM服务器。在对比了市场上数十家IM云服务厂商以后,我们决定选择[环信](http://www.easemob.com/)来为Dolor...阅读全文
chart 是一个非常简单的 golang 原生图表库,支持 timeseries 和连续线图表。 ## 安装 ```bash > go get -u github.com/wcharczuk/go-chart ``` # Examples Spark Lines: ![](https://raw.githubusercontent.com/wcharczuk/go-chart/master/_images/tvix_ltm.png) Single ax...阅读全文
![image](https://static.oschina.net/uploads/space/2017/0602/110009_8Unn_2720166.png) Draft 是由微软出品的一个帮助开发者在 Kubernetes 上快速创建云原生应用的工具。使用该工具,你可以不需要知道 Docker 或者 Kubernetes,就可以去开发自己的云上应用。阅读全文
ecdiy 是一个用 Golang 开发的工具集,能做 Web 容器,命令行工具 **ecdiy 已实现的功能** 发送邮件 缓存 Include Script **典型配置:ecdiy.cn 网站开发的配置**阅读全文
Golang 开发工具,提供代码质量检测/Golang 代码静态检测器/Golang 项目单元测试,根据自定义模版自动生成 Golang 代码质量检测报告。 ![image](https://static.oschina.net/uploads/space/2017/0406/113414_e0Od_2903254.png) Summary ![image](https://static.oschina.net/uploads/space/2017/0406/113431_ipJw_2...阅读全文
immortalv 是一个 *nix 跨平台管理(与操作系统无关)。 使用immortaldir: file.yml的名称将用于引用要守护程序的服务。 将输出当前状态并允许管理服务 ![image](https://static.oschina.net/uploads/space/2017/0331/164422_ni5V_2894582.png)阅读全文
SmartPing为一个各机器(点)间间互PING检测工具,支持互PING,单向PING,绘制拓扑及报警功能 ##功能 ## 机器间互PING,单向PING,绘图 绘制互PING间机器的拓扑及报警功能 本系统设计为无中心化原则,所有的数据均存储自身点中,默认数据循环保留1个月时间,由自身点的数据绘制 出PING包 的状态,由各其他点的数据绘制 进PING包 的状态,并API接口获取其他点数据绘制整体PING拓扑图,拓扑图中存在报警功能,报警规则为Thresholchecksec秒钟内发现...阅读全文
go(风格)轻量高效的前端组件化web框架,这是一项正在完善的工作 Ego是一个用Go编写的全栈Web框架,轻量级和高效的前端组件解决方案 安装: 例子:[https://github.com/go-ego/ego/tree/master/examples/ego](https://github.com/go-ego/ego/tree/master/examples/ego) 路由: 效果图: ![image](https://static.oschina.net/uploads/s...阅读全文
HTTP 负载生成器,以前名称为 [rakyll / boom](https://www.oschina.net/p/boom),是受到 Tarek Ziade 在 tarekziade / boom 的工具启示。因使用同样的名称会导致二进制名称冲突,进而导致混乱,因此更名为 Hey。阅读全文
GAPID 是一个工具合集,允许检查、调整和重复从应用程序到 Graphics 驱动之间的调用。 GAPID 采用 Go 语言编写,目前仍在开发中,但已经可以用于调试许多 Android OpenGL ES 和 Vulkan 应用。 GAPID 由以下子工具/组件构成: [`gapii`](https://github.com/google/gapid/blob/master/gapii):**Graphics API 拦截器**——****位于应用程序/游戏和 GPU 驱动程序之间的一层...阅读全文
wx_relay_server是一款微信公众号第三方平台中继服务器,用于刷新公众号平台自身的token和托管的公众号token。 **目的:** 其他服务采用拉服务模式,通过rpcx进行rpc通信,获取相关微信token. 用户微信公众号第三方平台刷公众号平台和托管的公众号appid的相关token, 该服务不能停超过10分钟. 主要刷公众号第三方平台的component_access_token和preauthcode, 公众号的authorizer_access_token和author...阅读全文
Gitaly是一个Git RPC服务,用于处理GitLab发出的所有git调用。目前Gitaly仍在发展。 我们期望它成为一个标准组件,并在2017年第三季度达到全覆盖。 **项目目标:** 制作大型GitLab实例的git数据存储层,特别是GitLab.com,速度快。 **这将通过关注两个领域(按此顺序)来实现:** 允许高效缓存 GitLab的Git数据层的弹性水平缩放 **由来:** 对于GitLab.com git访问很慢。 当查看Rugged :: Repositor...阅读全文
Jazigo是一个用 Go 语言编写的,用于检索多个设备的配置的工具,类似于rancid,fetchconfig,oxidized,Sweet。它具有以下特点: Go语言编写。单个可执行文件。没有运行时依赖。 直接使用:默认设置应该是开箱即用的。 工具配置自动保存为YAML。 但不要直接编辑配置文件。 产生多个并发的轻量级goroutine,以快速检测大量的设备。 很容易支持新平台。 可以从Web UI访问备份文件。 直接从Web UI查看文件差异。 支持SSH和TELNET。 ...阅读全文
Imaging 是一个 Go 图像处理包,提供了基本的图像处理功能(调整大小,旋转,翻转,裁剪等),这个包基于标准的 Go 图像包。 采用任何实现 `image.Image` 接口作为输入的图像类型,并返回 `*image.NRGBA` 类型的新图像(32 位 RGBA 颜色) **示例:** 原始图像(将由 512x512px 转变为 128x128px) ![image](https://static.oschina.net/uploads/space/2017/0303/150...阅读全文
cache2go 是一个 Go 的并发安全缓存库,具有到期和访问计数器的功能。 **示例代码:**阅读全文
OpenDCP是一个基于Docker的云资源管理与调度平台,集镜像仓库、多云支持、服务编排、服务发现等功能与一身,支持服务池的扩缩容,其技术体系源于微博用于支持节假日及热点峰值流量的弹性调度DCP系统。OpenDCP允许利用公有云服务器搭建起适应互联网应用的IT基础设置,并且将运维的工作量降到最低。 特性 基于Docker容器技术进行封装,不要求使用者掌握Docker。 支持阿里云公有云平台,可根据需要随时申请和释放服务器,显著降低运营成本 涵盖虚拟机创建、镜像打包、镜像部署、服务发...阅读全文
一个 slicelement 包,用于查找一个元素,是否在列表中存在。支持 int、string、float 内置类型,也支持 struct 类型。比如:查找一个指定字段的元素值,是否在 []struct 中存在 我们经常遇到 append(data, element) 往列表中添加元素,如果 data 不存在该元素,则添加。还有一种情况也经常遇到的是,一个 []struct 数据复杂类型,判断 struct 中某个字段值是否存在,不存在则添加。 该 slicelement 包,支持这种查找...阅读全文
Swan 是一个基于 [mesos](https://www.oschina.net/p/apache+mesos) 的新 HTTP API,使用 golang 开发。你可以使用 swan 在 mesos 集群上部署应用程序,并管理应用程序的整个生命周期,还可以使用新版本进行滚动更新,扩展应用程序,并且可以在应用程序或服务不可用时对应用程序和自动故障转移进行运行状况检查。 应用程序开发 应用程序缩放 滚动升级 版本回滚 运行状况检查 自动故障转移 高可用性 构建 HTTP 代理,...阅读全文
推广API 基于webservice,主要实现账户结构和账户报表下载,用于数据分析。阅读全文
波塞冬,是希腊神话中的海神,在这里是寓意着海量数据的主宰者。 Poseidon 系统是一个日志搜索平台,可以在数百万亿条、数百PB大小的日志数据中快速分析和检索特定字符串。 360公司是一个安全公司,在追踪 APT(高级持续威胁)事件时,经常需要在海量的历史日志数据中检索某些信息, 例如某个恶意样本在某个时间段内的活动情况。在 Poseidon 系统出现之前,都是写 Map/Reduce 计算任务在 Hadoop 集群中做计算, 一次任务所需的计算时间从数小时到数天不等,大大制约了 APT 事...阅读全文
Snips 是 QingCloud & QingStor SDKs 的代码生成工具。Snips 使用 OpenAPI Specification(Swagger)v2.0 格式的 API 规范为 QingCloud 和 QingStor SDK 生成各种代码。 Snips 采用 API 规范和模板来生成大量的 API 代码,这些生成的代码加上手写的代码组成 SDK。 接下来,我们使用测试脚本来确保我们的 SDK 正常工作,并确保它们的功能一致性。 ![image](https://s...阅读全文
## xingo 高性能 golang 网络库,游戏开发脚手架。 默认通信协议如下(支持自定义协议处理部分代码,支持灵活的重载协议部分代码): * Len uint32 数据 Data 部分长度 * MsgId uint32 消息号 * Data []byte 数据 * 消息默认通过 google 的 protobuf 进行序列化 服务器全局配置对象为 GlobalObject,支持的配置选项及默认值如下: * TcpPort: 8109,//服务器监听端口 * MaxConn...阅读全文
Gini 是一个快速、简洁的 SAT 求解器。 **安装** <pre data-cke-widget-data="%7B%22code%22%3A%22go%20get%20github.com%2Firifrance%2Fgini...%5Cn%22%2C%22classes%22%3Anull%7D" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet" clas...阅读全文
Golang 实现的连接池 **功能:** * 连接池中连接类型为interface{},使得更加通用 * 链接的最大空闲时间,超时的链接将关闭丢弃,可避免空闲时链接自动失效问题 * 使用channel处理池中的链接,高效 **基本用法** <pre class="brush:cpp ;toolbar: true; auto-links: false;">//factory 创建连接的方法 factory := func() (interface{}, error) { re...阅读全文
![image](https://static.oschina.net/uploads/space/2016/1108/174047_xW7k_2894582.jpeg) Cyclone是一个打造容器工作流的云原生持续集成持续发布平台。 Cyclone主要致力于将代码从本地开发环境用任意容器引擎封装搬运到测试或者生产环境运行。Cyclone包括一下特性: * 容器原生: 每次构建、集成、部署均在容器中运行,完全解决运行时环境不一致的问题。 * 依赖关系: 定义依赖规则或简单的组件关系,确...阅读全文