1 unstable release
0.4.0 | Nov 10, 2022 |
---|
#9 in #feakin
41KB
1K
SLoC
Fklang
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
- with Spring
- contract base testing
- mock server
- with HTTP API
- database integration: JPA, JDBC, etc.
- database integration
- MySQL
- PostgresSQL
- database schema generation
- database migration
- database integration
- plugin system
- plugin api
- plugin registry
- simple expr
- Expr
- logic expr
- math expr
- etc.
- Filter
- REPL
- ExprTk with Rust?
- Expr
- 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.
Dependencies
~2.2–3.5MB
~58K SLoC