Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/feakin/fklang
Fklang 是一个面向软件开发工业化的架构设计 DSL,通过显性化软件架构设计,以确保软件系统描述与实现的一致性。并在工作流中,内嵌对于 AI 代码生成软件的支持,以构筑完整的开发者体验。
https://github.com/feakin/fklang
dsl language
Last synced: 2 months ago
JSON representation
Fklang 是一个面向软件开发工业化的架构设计 DSL,通过显性化软件架构设计,以确保软件系统描述与实现的一致性。并在工作流中,内嵌对于 AI 代码生成软件的支持,以构筑完整的开发者体验。
- Host: GitHub
- URL: https://github.com/feakin/fklang
- Owner: feakin
- License: mpl-2.0
- Created: 2022-10-07T15:45:06.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-12-26T02:52:56.000Z (about 2 years ago)
- Last Synced: 2024-11-08T18:18:30.796Z (3 months ago)
- Topics: dsl, language
- Language: Rust
- Homepage: https://book.feakin.com/
- Size: 704 KB
- Stars: 105
- Watchers: 3
- Forks: 6
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome - feakin/fklang - 12 star:0.1k fork:0.0k Fklang 是一个面向软件开发工业化的架构设计 DSL,通过显性化软件架构设计,以确保软件系统描述与实现的一致性。并在工作流中,内嵌对于 AI 代码生成软件的支持,以构筑完整的开发者体验。 (Rust)
README
# Fklang
[![Build](https://github.com/feakin/fklang/actions/workflows/build.yml/badge.svg)](https://github.com/feakin/fklang/actions/workflows/build.yml)
![Crates.io](https://img.shields.io/crates/v/fkl_cli)
[![codecov](https://codecov.io/gh/feakin/fklang/branch/master/graph/badge.svg?token=PCIL3T0NDR)](https://codecov.io/gh/feakin/fklang)origin idea from [Forming](https://github.com/inherd/forming), but it's too complex. So I decide to rewrite it with
TypeFlow> Fklang,一个基于[软件开发工业化](https://book.feakin.com/design-principles)思想设计的架构 DSL。
> 通过显式化的软件架构设计,以确保软件系统描述与实现的一致性,并探索结合 AI 代码生成。Try it: [Feakin Quick Start](https://book.feakin.com/quick-start.html)
Spec: [Feakin Specification](https://book.feakin.com/fklang/specification.html)
## 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
- [x] DSL Design
- [x] IDEA Plugin
- Code gen
- [ ] with Spring
- [x] Controller
- [ ] DDD
- contract base testing
- [x] mock server
- [x] with HTTP API
- database integration: JPA, JDBC, etc.
- [ ] database integration
- [x] MySQL
- [x] PostgresSQL
- [ ] database schema generation
- [ ] database migration
- plugin system
- [x] 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.