feakin / fklang

Fklang 是一个面向软件开发工业化的架构设计 DSL,通过显性化软件架构设计,以确保软件系统描述与实现的一致性。并在工作流中,内嵌对于 AI 代码生成软件的支持,以构筑完整的开发者体验。

Home Page:https://book.feakin.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fklang

Build Crates.io codecov

origin idea from Forming, but it's too complex. So I decide to rewrite it with TypeFlow

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

Try it: Feakin Quick Start

Spec: Feakin Specification

Install

cargo install fkl_cli

Modules

  • Parser
    • fkl_mir. the intermediate representation of fklang
    • fkl_parser. parser for fkl.
    • fkl_parser_wasm. wasm wrapper version of fkl_parser.
  • CLI. CLI for generator code and IDE support.
    • fkl_cli. the cli for fkl, like code_gen, dot_gen or others.
  • LSP. language server protocol, for IDE/Editor Support
    • fkl_lsp. language server for fkl.
  • CodeGen. code generator for fkl.
    • fkl_codegen_dot. generate Graphviz dot language from fkl source.
    • fkl_codegen_java. generate Java code from fkl source.
  • Plugin System
    • fkl_ext_loader. load external plugins for fkl.
    • fkl_ext_api. the api for external plugins.
    • plugins
      • ext_kafka. the plugin for kafka.
      • ext_computing. the plugin for computing.
      • ext_codegen_aws. the plugin for aws codegen.
      • ext_sourceset_swagger. the plugin for swagger.

Roadmap

  • DSL Design
  • IDEA Plugin
  • Code gen
    • with Spring
      • Controller
      • DDD
  • contract base testing
    • mock server
    • with HTTP API
  • database integration: JPA, JDBC, etc.
    • database integration
      • MySQL
      • PostgresSQL
    • database schema generation
    • database migration
  • plugin system
    • plugin api
    • plugin registry
  • simple expr
    • Expr
      • logic expr
      • math expr
      • etc.
    • Filter
    • REPL
    • ExprTk with Rust?
  • module support
    • module dependency
    • module versioning
  • bootstrapping DDD DSL
    • use type system to describe domain model
  • build system inside: cache, incremental build, etc.
    • better code generation
  • general programming language (if possible)
    • function support
    • expression support

License

@2022 This code is distributed under the MPL license. See LICENSE in this directory.

About

Fklang 是一个面向软件开发工业化的架构设计 DSL,通过显性化软件架构设计,以确保软件系统描述与实现的一致性。并在工作流中,内嵌对于 AI 代码生成软件的支持,以构筑完整的开发者体验。

https://book.feakin.com/

License:Mozilla Public License 2.0


Languages

Language:Rust 98.7%Language:JavaScript 0.6%Language:Java 0.3%Language:Makefile 0.2%Language:Shell 0.1%