#架构 #解析器 #设计 #feakin #语言 #AI #DSL

fkl

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

1 个不稳定版本

0.2.0 2022年10月7日

#256 in 可视化

MPL-2.0 许可证

2KB

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

无运行时依赖