etolbakov / excalidocker-rs Goto Github PK
View Code? Open in Web Editor NEWConvert your docker-compose into excalidraw
License: MIT License
Convert your docker-compose into excalidraw
License: MIT License
The application should validate the values provided in the config file
At the moment network
is ignored, it will be good to add network support. At the moment there are 2 options
links:
[1]. https://docs.docker.com/compose/networking/
It will allow users to customize colors, fonts, sloppiness etc
This would be useful because connections remain when boxes are moved
Since it's possible to build a Rust program for Web assembly maybe it will be possible to convert excalidocker
into
browser add-on.
Resources:
[1] Rust Linz, November 2020 - Karl Grasegger - Building a web extension in Rust
[1.1] https://github.com/grasegger/rust-web-extension-talk
[2] https://www.reddit.com/r/WebAssembly/comments/yobynb/webnava_rust_wasm_and_typescript_chrome_extension/
[3] Serverless Architecture Conf London 2023: Rust + Wasm - A Dream Team for Serverless
[3.1] https://github.com/rstropek/rust-samples/tree/master/wasm-serverless
As per output of the comparison
Run echo "Version: '0.1.6' | latest release: '0.1.5'"
Version: '0.1.6' | latest release: '0.1.5'
Proceeding with building & release steps.
there should be release, while release jobs are skipped
https://github.com/etolbakov/excalidocker-rs/actions/runs/5315546707/jobs/9624039777
Currently excalidocker-config.yaml supports only hex
format for colors
...
services: # rectangle
background_color: "#b2f2bb"
....
ports: # ellipse
background_color: "#a5d8ff"
....
It would be helpful to let users specify colors like red
, blue
, green
, etc.
Potentially - this crate can be useful
https://docs.rs/hex_color/latest/hex_color/
Excalidraw supports 2 edge types: sharp
and round
. We need to add support in the config.
Scope of change:
config
When a docker image exposes several ports the layout has issues.
minio:
image: minio/minio
container_name: minio
ports:
- "9000:9000"
- "9001:9001"
- "9044:9044"
- "9055:9055"
It affects all 3 alignment modes (vertical
, horizontal
, stepped
. Might need to consider a totally different way of drawing ports
This is just brilliant, thank you!
I saw your roadmap, FWIW I would put at #1 the Docker artefact - being able to run this without installing/building would make it super useful. It could then also be used in things like github actions for auto documentation as well.
Other ideas:
/tmp
by default./excalidocker --input-path ~/git/lakeFS/deployments/compose/docker-compose.yml
thread 'main' panicked at 'index out of bounds: the len is 1 but the index is 1', src/main.rs:159:38
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Input file is this one
(excalidocker
worked fine with this one)
That would give a better user experience when some manual adjustments in the excalidraw are needed
It feels that these number of structs is excessive:
Lines 143 to 147 in 99459d0
HashMap
structs.In some cases it will be useful to pass the link to the external file ( f.e. in github) and create excalidraw out of it
Partially this has been done https://github.com/etolbakov/homebrew-taps.
Need to update docs on how to install & uninstall
brew install etolbakov/taps/excalidocker
brew uninstall etolbakov/taps/excalidocker
The code is in relatively untidy state. Commands
cargo check --all-features
cargo fmt -- --check
cargo clippy -- -D warnings
produce a lot of actions (unused code, not optimal methods etc). This needs to be addressed.
It came out as a suggestion from #20
It would be a useful to have a flag to choose the layout format:
At the moment etolbakov/excalidocker
image is 115.55 Mb. Image size optimizations are required.
The following line causes warnings
excalidocker-rs/.github/workflows/release.yml
Line 234 in 4e64a2a
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
As per Github recommendation a workflow using save-state or set-output like the following
- name: Save state
run: echo "::save-state name={name}::{value}"
- name: Set output
run: echo "::set-output name={name}::{value}"
should be updated to write to the new GITHUB_STATE
and GITHUB_OUTPUT
environment files:
- name: Save state
run: echo "{name}={value}" >> $GITHUB_STATE
- name: Set output
run: echo "{name}={value}" >> $GITHUB_OUTPUT
For example:
docker run --rm -e INPUT_PATH=https://raw.githubusercontent.com/treeverse/lakeFS-samples/main/standalone/airflow-dag-example/docker-compose.yml etolbakov/excalidocker:latest > tmp.excalidraw
The generated diagram doesn't show the ports exposed by the services that are extended from a parent Docker Compose, only those in the Docker Compose specified
Also odd how they're all rendered at an increasing vertical offset, not sure if this is by design but keeping it level would be useful too
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.