Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(WIP, not for merging) Standalone WASM+native build of "bundle init" #2491

Draft
wants to merge 51 commits into
base: main
Choose a base branch
from

Conversation

denik
Copy link
Contributor

@denik denik commented Mar 14, 2025

Demo: https://databricks.github.io/cli/experimental/template

In this branch, libs/template is hacked not to depend on SDK or file system or readline. Computed values (user_name, workspace_host, default_catalog) need to be provided by the caller.

I’m using client-side decompressor to download gzip (1.4MB), on a real deployment server this won’t be necessary and we can use brotli (1MB). Uncompressed size is 5.7MB.

If we were to productionize this we need to extract smaller rendering library from libs/template, so that wasm build does not depend on SDK (which bloats size: libs/git, libs/filer) or terminal-related utilities (which does not compile: cmdio).

denik added 30 commits March 13, 2025 13:03
~/work/cli/wasm_bundle_init % ls -l bundle_init bundle_init.wasm
-rwxr-xr-x@ 1 denis.bilenko  staff  5534290 Mar 13 20:26 bundle_init
-rwxr-xr-x@ 1 denis.bilenko  staff  6751755 Mar 13 20:26 bundle_init.wasm

after:

~/work/cli/wasm_bundle_init % ls -l bundle_init bundle_init.wasm
-rwxr-xr-x@ 1 denis.bilenko  staff  3848802 Mar 13 20:28 bundle_init
-rwxr-xr-x@ 1 denis.bilenko  staff  6605659 Mar 13 20:28 bundle_init.wasm
~/work/cli/wasm_bundle_init % ls -l bundle_init bundle_init.wasm
-rwxr-xr-x@ 1 denis.bilenko  staff  3848802 Mar 13 20:28 bundle_init
-rwxr-xr-x@ 1 denis.bilenko  staff  6605659 Mar 13 20:28 bundle_init.wasm

~/work/cli/wasm_bundle_init % make clean all
rm bundle_init bundle_init.wasm
GOOS=js GOARCH=wasm go build -ldflags="-w -s" -gcflags=all=-l -o bundle_init.wasm
go build -ldflags="-w -s" -gcflags=all=-l -o bundle_init

~/work/cli/wasm_bundle_init % ls -l bundle_init bundle_init.wasm
-rwxr-xr-x@ 1 denis.bilenko  staff  3585170 Mar 13 20:30 bundle_init
-rwxr-xr-x@ 1 denis.bilenko  staff  6581078 Mar 13 20:30 bundle_init.wasm
@denik denik temporarily deployed to test-trigger-is March 14, 2025 08:02 — with GitHub Actions Inactive
@denik denik temporarily deployed to test-trigger-is March 14, 2025 10:12 — with GitHub Actions Inactive
@denik denik temporarily deployed to test-trigger-is March 14, 2025 10:56 — with GitHub Actions Inactive
@denik denik temporarily deployed to test-trigger-is March 14, 2025 15:04 — with GitHub Actions Inactive
@denik denik temporarily deployed to test-trigger-is March 14, 2025 15:14 — with GitHub Actions Inactive
@denik denik temporarily deployed to test-trigger-is March 14, 2025 15:24 — with GitHub Actions Inactive
@denik denik temporarily deployed to test-trigger-is March 14, 2025 16:32 — with GitHub Actions Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant