支持300+常用功能的开源GO语言工具函数库

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个Go语言工具函数库——Lancet。

lancet(柳叶刀)是一个全面、高效、可复用的go语言工具函数库。 lancet受到了java apache common包和lodash.js的启发。

  • 全面、高效、可复用
  • 300+常用go工具函数,支持string、slice、datetime、net、crypt…
  • 只依赖go标准库
  • 所有导出函数单元测试覆盖率100%

1、对于使用go1.18及以上的用户,建议安装v2.x.x。因为v2.x.x用go1.18的泛型重写了大部分函数。

2、使用go1.18以下版本的用户,必须安装v1.x.x。目前最新的v1版本是v1.2.9。

lancet是以包的结构组织代码的,使用时需要导入相应的包名。例如:如果使用字符串相关函数,需要导入strutil包:

此处以字符串工具函数ReverseStr(逆序字符串)为例,需要导入strutil包:

algorithm算法包实现一些基本算法。例如:sort、search、lrucache等。

示例:BubbleSort

冒泡排序,参数comparator需要实现包lancetconstraints.Comparator

函数签名:

Example

并发包包含一些支持并发编程的功能。例如:goroutine、channel、async等。

示例:NewChannel

返回一个 Channel 指针实例

函数签名:

Example

convertor转换器包支持一些常见的数据类型转换。

示例:ToBool

字符串转布尔类型,使用strconv.ParseBool

函数签名:

Example

cryptor加密包支持数据加密和解密,获取md5,hash值。支持base64、md5、hmac、aes、des、rsa。

示例:AesEcbEncrypt

使用AES ECB算法模式加密数据. 参数`key`的长度是16, 24 or 32。

函数签名:

Example

—END—

开源协议:MIT

开源地址:https://github.com/duke-git/lancet

17个开源免费的Java CMS

1、InfoGlue

infoglue是一个高级的、可扩展的、健壮的内容管理系统,完全用Java开发。重要的功能包括完全支持多语言,站点之间良好的重用,以及广泛的集成能力。

2、Magnolia

Magnolia是一个开源基于Java的Web内容管理系统(CMS) ,构建在Java内容知识库标准(JSR-170).Magnolia支持包括英语,中文在内的14种语言,它支持本地搜索,基于XML的导入/导出,跨浏览器的文本编辑器,一个简易的War文件可部署到任何J2EE容器中。在最新版本中还添加对数字媒体在线编辑功能。

3、OpenCms

OpenCms是一个J2EE的产品,它是用Java写成的。它和Tomcat捆绑在一起。但是也能够使用ATG Dynamo、WebLogic和WebSphere。OpenCms支持多种RDBMS来保存内容,包括Oracle、SQL Server、Sybase和mySQL。新版本提供了一个新的模板引擎,JSP支持,一种新的连接管理系统,提高了稳定性。

4、JBoss Nukes

基于J2EE架构的JBoss的Nukes是一个完整的内容管理系统。它包含高级用户组管理,安全规则等组件。这些组件在运行期才被部署。

5、eAdmin/OWX

基于java/jsp的SiteEditor, CMS,列表生成器等开源软件。包括:模块,XML配置,Struts,自己的API,组件,WYSIWYG,多语言,多用户,基于Web的管理器。

6、Apache Lenya

Apache Lenya 是java的开源内容管理系统。它基于一些标准的技术比如XML 与 XSLT。它其中的代码核心来自于另外一个开源项目Cocoon。

7、Cofax

Cofax是以Java/XML为基础的CMS。源于Kinight Ridder为方便管理旗下新闻网站所开发。

8、webEditor

webEditor是一个专门论坛网站的管理系统 。使用cocoon作为机制。

9、MMBase

MMBase 基于 MPL 的开源 CMS, 具有方便信息发布、维护等特点, 包含有新闻发布、论坛、聊天室等模块, 不过个人认为该项目最大优点还是丰富的文档, 这是在开源项目中很难得地方。

10、Ion

ion是一个简单但功能强大的基于最新技术的内容管理系统。它完全符合J2EE标准,使用XML定义内容结构。利用XSL把内容转换成各种格式比如:HTML, XML, PDF, TXT等,并且使JSTL作为模板系统。

11、Jahia

Jahia 组织日前发布了Jahia 内容综合管理系统CMS和其工作所处的portal server,该版本包含了全功能的search engine,一个轻量级的文档管理系统(支持WebDAV )以及一些协作性的应用portalet(讨论组,WebMail,ToDo List,Timesheet…)

12、JetNuke

JetNuke是一个依据于PHPNuke但使用Java开发的网站内容管理系统(CMS)。

JetNuke免费使用且开放源代码(GNU license)。

JetNuke严格分离了逻辑,数据,样式(style)

7种预定义的样式,没有复杂性的配置文件,一个Web Administration。JetNuke可以很好的与JForum相结合。

JetNuke使用FCKEditor(WYSIWYG HTML 编辑器)来编辑HTML内容。

13、dotCMS

dotCMS是一个100%免费基于J2EE/portal的内容管理系统,它有着许多吸引人的特性是其它许多CMS所没有的。在dotCMS中使用到的开源项目与框架有:Apache Tomcat ,Liferay Enterprise Portal ,Apache Struts, Hibernate ORM,Velocity模板语言,Lucene搜索引擎 。dotCMS采用Eclipse IDE开发并使用Velocity + Struts做为前端使得dotCMS变得容易扩展和构建。dotCMS的license:The Dotmarketing Public License。

14、OpenE

penEdit包括三大模块Web内容管理,电子商务,博客。Web内容管理包括在线编辑,动态布局,拼写检查(英文), 用户管理,文件管理,版本控制和通告工具。电子商务模块包括在线产品目录管理,购物车,电子付款,产品展示与产品高级搜索(利用Nutch/Lucene的web爬行与搜索功能进行高级搜索所以不需要用数据库的功能)。 Blog模块包括在线管理,评论,注册和RSS/Atom引擎。 OpenEdit运用到的开源组件有:Velocity,Dom4j,Spring,Lucene。

15、Hippo CMS

Hippo CMS是一个开源以信息为中心的内容管理系统。它的界面友好,开放体系并可集成到现存系统中使用。Hippo CMS运用了多个开源项目进行开发。

16、JEECMS

JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。

  • 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点

  • 采用hibernate3+struts2+spring2+freemarker主流技术架构

  • 懂html就能建站,提供最便利、合理的使用方式

  • 强大、灵活的标签,用户自定义显示内容和显示方式

  • 在设计上自身预先做了搜索引擎优化,增强对搜索引擎的友好性

  • 采用伪静态页面技术,可自定义路径结构,无需urlrewrite

  • 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

17、Pulse

Pulse是一个Web应用程序开发框架和门户网站搭建解决方案。它内置一些即装即用的组件比如:CMS,网站购物,调查,各种过滤器,成熟的用户与角色管理,一个基于WebDAV的虚拟文件系统和一个采用ExtJS开发,易于使用的后台管理界面。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。