Modernize architecture visualization assets management, based on Diagram-as-code, so you can create, share and edit diagram. Support for import Mermaid, PlantUML, Excalidraw, Dot and more.
Chinese introduction: Feakin 是一个架构资产可视化管理工具。基于图表即代码 的思想体系,支持导入 Mermaid, PlantUML, Excalidraw, Dot 等图形资产格式。
Core Technical:
- concepts: Collaboration (CRDT) + DSL (pest.rs) + Graph Engine + Editor Language (Monaco)
- stacks: Rust( + WASM) + React + TypeScript
特性:
- Graph
- 跨图工具转换。支持导入 Mermaid, PlantUML, Excalidraw, Dot 等图形资产格式,并基于 Graph MIR 进行转换。
- 广泛的图表格式导出。
- Drawio
- Excalidraw
- 模板创建。支持创建模板,并基于 Graph MIR 进行转换,转换成其它图表格式。
- 多样化图形布局。支持 Dagre、ELK、Cola 等布局。
- Dagre
- replace Grapvhiz to WASM
- 手绘风格。
- Rough.js sample
- Collaboration
- Server
- Protocol
- CRDT
- Editor
- DSL
- FKL Syntax
- FKL Parser
- FKL LSP
- Editor
- Dot Language
- Fkl Language
ContextMap TicketBooking {
Reservation <-> TicketContext;
}
Context TicketContext {
Aggregate Ticket, Reservation;
}
Entity Ticket {
Struct {
seat: String;
}
}
// binding;
impl CinemaCreated {
endpoint {
GET "/book/{id}";
authorization: Basic admin admin;
response: Cinema;
}
flow {
via UserRepository::getUser receive x: User;
via Kafak send User to "user.create";
}
}
Try Online demo: https://online.feakin.com/ Or install @feakin/cli
for diagrams converter:
npm install -g @feakin/cli
feakin --input software-development.md.drawio --output sd.excalidraw
- Render
- Editor
- text Editor with Monaco Editor
- interactive Editor with Graphical Editor
- Parser
- Jison with Mermaid
- collaboration
- CLI
- upgrade publish script
- Architecture Features
- Playground: https://online.feakin.com/
- ComponentLess architecture
- WebComponent, like
<feakin data="" layout="" import="" import-type=""></feakin>
- WebComponent, like
- Templates
- DDD ?
- Layered Architecture
- Test Pyramid
- Export and Import
- MxGraph
- Excalidraw
- PlantUML
- Libraries
- compatible Excalidraw libraries : https://libraries.excalidraw.com/?theme=light&sort=default
We use nx.js for mono-repo architecture.
- install
npm install --legacy-peer-deps
Note: nx.js use Craco, which will need --legacy-peer-deps
.
- development exporter, can just run by tests
- Flow parser based on mermaid.js
- Excalidraw's type based on excalidraw
@2022 Thoughtworks This code is distributed under the MPL license. See LICENSE
in this directory.