Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

binwang-ln/fklang

Open more actions menu
 
 

Repository files navigation

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 代码生成软件的支持,以构筑完整的开发者体验。

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.