仓颉社区优质开源项目
此板块收集和展示仓颉社区的优质开源项目,感谢各位开发者的辛勤付出和卓越贡献!
开发框架
- 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 大模型掌握仓颉知识库,可提供仓颉知识问答和代码生成等能力