#架构 #解析器 #语言 #设计 #feakin #ai #dsl

fkl_mir

Feakin 是一个架构设计和视觉协作工具。这是 Feakin 的解析器。

1 个不稳定版本

0.4.0 2022年11月10日

#2882解析器实现


2 crate 中使用

MPL-2.0 许可证

33KB
991

Fklang

Build Crates.io codecov

灵感来源于 Forming,但过于复杂。所以我决定使用 TypeFlow 重新编写它。

Fklang,一个基于软件开发工业化思想设计的架构 DSL。通过显式化的软件架构设计,以确保软件系统描述与实现的一致性,并探索结合 AI 代码生成。

试用:Feakin 快速入门

规范:Feakin 规范

安装

cargo install fkl_cli

模块

  • 解析器
    • fkl_mir. fklang 的中间表示
    • fkl_parser. fkl 的解析器
    • fkl_parser_wasm. fkl_parser 的 wasm 封装版本
  • CLI. 代码生成器和 IDE 支持的 CLI
    • fkl_cli. fkl 的 CLI,如 code_gen、dot_gen 等
  • LSP. 语言服务器协议,用于 IDE/编辑器支持
    • fkl_lsp. fkl 的语言服务器
  • CodeGen. fkl 的代码生成器
    • fkl_codegen_dot. 从 fkl 源生成 Graphviz dot 语言
    • fkl_codegen_java. 从 fkl 源生成 Java 代码
  • 插件系统
    • fkl_ext_loader. 加载 fkl 的外部插件
    • fkl_ext_api. 外部插件的 API
    • 插件
      • ext_kafka. kafka 插件
      • ext_computing. 计算插件
      • ext_codegen_aws. aws 代码生成插件
      • ext_sourceset_swagger. swagger 插件

路线图

  • DSL 设计
  • IDEA 插件
  • 代码生成
    • 与 Spring
      • 控制器
      • DDD
  • 基于合同的测试
    • 模拟服务器
    • 与 HTTP API
  • 数据库集成:JPA、JDBC 等
    • 数据库集成
      • MySQL
      • PostgresSQL
    • 数据库模式生成
    • 数据库迁移
  • 插件系统
    • 插件 API
    • 插件注册
  • 简单表达式
    • 表达式
      • 逻辑表达式
      • 数学表达式
      • 等。
    • 过滤器
    • REPL
    • ExprTk 与 Rust?
  • 模块支持
    • 模块依赖
    • 模块版本
  • 启动 DDD DSL
    • 使用类型系统描述领域模型
  • 内部构建系统:缓存、增量构建等
    • 更好的代码生成
  • 通用编程语言(如果可能)
    • 函数支持
    • 表达式支持

许可证

@2022 本代码在 MPL 许可证下分发。请参阅此目录中的 LICENSE

依赖关系

~1.4–2.3MB
~71K SLoC