仓颉社区优质开源项目

此板块收集和展示仓颉社区的优质开源项目,感谢各位开发者的辛勤付出和卓越贡献!

开发框架

  • naivetoolkit:东北大学软件学院推出的仓颉云原生开发套件,可用于现代软件工程教学与实践
  • spire:企业级 Web 开发框架
  • fires, tea:轻量级 Web 开发框架,为开发者提供高效、简洁的 Web 应用程序开发体验
  • evently:事件驱动框架,表达方式很优雅
  • jorm:数据库 ORM 框架
  • naiveIOC:基于宏实现的依赖注入容器(不涉及反射和 AOT)
  • simpleIOC:基于反射实现的依赖注入容器
  • cjqt:跨平台 GUI 框架 QT 的仓颉封装,目前已支持核心功能
  • webview-sdk:基于系统 WebView 组件的应用编程框架,目前支持 Windows 和 Mac 平台
  • cjml:一个基于 CPU 的大模型推理框架

算法库

  • cjgrapht:图论相关的数据结构与算法库
  • tokenizer:大模型分词器,支持编码和解码,支持加载 Hugging Face 的 tokenizer.json 文件
  • deque4cj:一个高效的双端队列库,支持灵活的元素插入、删除和动态容量管理
  • kcj:Kotlin 集合操作的仓颉移植
  • bloom4cj:一个标准的布隆过滤器(StandardBloom),用于高效地进行集合成员判断,基于哈希函数和位数组,通过设置多个哈希值来优化假阳性率
  • flashtext4cj:flashtext 算法的仓颉实现,用于快速提取和替换文本中的关键词,比正则搜索更高效
  • indexer4cj:全文索引和搜索库
  • metaphone-cj:metaphone 算法的仓颉实现(一种语音相似性检测算法)。支持将一个特定的字符串(通常是一个英文单词)转换为一个代码,并可以和其他代码(或其他单词)进行比较,以检查他们的发音是否相同
  • leven4cj:使用 Levenshtein 距离算法测量两个字符串之间的差异, 支持中英文混合字符串
  • cjgeohash:应用 GeoHash 算法,基于自定义维度和经度创建地理代码

协议库

  • yaml:yaml 文件解析库
  • toml:toml 文件解析库
  • light-html:轻量级 HTML 解析库,可以将 HTML 文本解析为仓颉对象,支持对 HTML 元素进行增删查改、使用 CSS 选择器操作元素等功能
  • cj-mail:邮件协议库,支持 SMTP / POP / IMAP / SubTypes / BASE64,以及常用邮件操作功能
  • cj-ftp:FTP(File Transfer Protocol,文件传输协议)的仓颉实现,支持所有基础特性,以及 TLS 和被动模式
  • hibase32cj:Base32(RFC 4648)编解码库, 支持 UTF-8 编码
  • is-png-cj:判断文件或字节流是否为 PNG 格式图片

通用库

  • jcmd:命令行交互框架,提供命令引导和 help 命令等
  • ansies4cj:以 ANSI 转义序列生成为基础,支持在控制台程序中,设置输出文本的颜色、样式、位置,以及屏幕区域擦除等功能
  • cj-cache:基于内存的 key-value 缓存库,对标 Go 社区的 go-cache 项目
  • mysql4cj, mysql-driver:仓颉原生 MySQL 驱动实现,基于 MySQL 客户端协议
  • dapr-cangjie-sdk:Dapr SDK 的仓颉实现,支持使用 HTTP 协议访问 Dapr 边车的客户端。 Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态或有状态的应用程序,并可运行在云平台或边缘计算中
  • alipay-sdk:支付宝支付后端仓颉原生 SDK

DSL

  • cjp-language:嵌入在仓颉语言中的脚本语言(类似 eDSL),可以和原生仓颉程序交互。支持注册关键字及处理逻辑,轻松定制领域方言。可以满足业务的一些动态特性需求
  • cjmustache:Mustache 模板语言的仓颉实现
  • json-cj:提供了 JSON 相关宏,支持从 JSON 字面量生成 JsonValue 对象,支持变量插值
  • cj2sql:基于宏实现的 DSL,可以更高效地表达和生成 SQL 语句
  • hongtools(红兔):提供一系列实用的仓颉宏程序

应用

  • playground-cj:仓颉语言在线编程平台,支持在线编辑与执行、代码高亮、分享和格式化等功能,UI 与代码呈现效果优雅美观
  • openai-chat:对接兼容 OpenAI 接口协议的大模型,实现聊天应用,支持流式对话
  • opds4cj:一个基础的 opds(漫画)服务器实现

辅助工具

  • cjbind:将 C 头文件自动转换成仓颉 CFFI 声明文件,进一步提升 C 互操作开发效率
  • json2cangjie:一个在线转换工具,可以将任意 JSON 对象自动转换成仓颉语言的类结构,并自动生成这些类的序列化和反序列化方法
  • vim4cj:支持仓颉语法高亮的 vim 插件
  • intellij-cangjie:适用于 intellij 平台的仓颉语言插件
  • Cangjie-Lora:基于仓颉标准库文档和 Cangjie-TPC 上的开源项目代码,使用 Lora 技术(一种低资源微调大模型方法)训练两个开源 7B 大模型掌握仓颉知识库,可提供仓颉知识问答和代码生成等能力