-
Notifications
You must be signed in to change notification settings - Fork 9
feat(cat-voices): catalyst compression with rust #3370
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
feat(cat-voices): catalyst compression with rust #3370
Conversation
…ompression-with-rust # Conflicts: # Earthfile # catalyst-gateway/event-db/Earthfile # catalyst-gateway/tests/Earthfile # catalyst_voices/packages/libs/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile # catalyst_voices/packages/libs/catalyst_key_derivation/Earthfile # catalyst_voices/utilities/uikit_example/Earthfile # docs/Earthfile # utilities/docs-preview/Earthfile
…ompression-with-rust # Conflicts: # Earthfile # catalyst-gateway/Earthfile # catalyst-gateway/event-db/Earthfile # catalyst-gateway/tests/Earthfile # catalyst_voices/Earthfile # catalyst_voices/packages/libs/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile # catalyst_voices/packages/libs/catalyst_key_derivation/Earthfile # catalyst_voices/packages/libs/catalyst_key_derivation/rust/Earthfile # catalyst_voices/utilities/uikit_example/Earthfile # docs/Earthfile # utilities/docs-preview/Earthfile
…ompression-with-rust
📚 Docs PreviewThe docs for this PR can be previewed at the following URL: https://docs.dev.projectcatalyst.io/voices/feat/catalyst-compression-with-rust |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From Dart perspective only formatting is mixed up a little bit. But I'm not sure if these files are generated and this the answer to that formatting problem
...oices/packages/libs/catalyst_compression/cargokit/build_tool/lib/src/artifacts_provider.dart
Show resolved
Hide resolved
...oices/packages/libs/catalyst_compression/cargokit/build_tool/lib/src/artifacts_provider.dart
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was able to build and run same code on web android and iOS. Very important PR!
One small comment tho
LGTM
catalyst_voices/packages/libs/catalyst_compression/lib/src/rust_initializer.dart
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rust part LGTM, but dont forget to change cat-ci version to some release from feat/catalyst-compression-setup
…ompression-with-rust
* feat(cat-voices): update android config (#3298) * feat: android app name * chore: update gradle * feat: transform groove to kotlin * feat: adding icons * feat: update background in loading in app splash for mobile * feat: update app flavor and env selection * feat: update grade-wrapper * feat: use specific sdk version * feat: update key derivation android config * feat: update remote_widgets android config * feat: update bundle id * fix: spelling * feat(cat-voices): update recommended settings and readme (#3321) * feat: update recommended settings and readme * fix: format * fix: format * feat: remove flavor from name * feat(cat-voices): ios config (#3315) * feat: podfile update * feat: update icons * feat: update pod file * feat: update catalyst key derivation * feat: update remote_widgets * chore: remove Podfile.lock from tracking and to gitignore * chore: update build targets * chore: add files to earthlyignore * refactor(cat-voices): split catalyst platform into operating system and form factor enums (#3317) * refactor: split catalyst platform into os and form factor * chore: cleanup * refactor: unify mobile detection * feat: allow embed builders on web only * chore: cleanup tests * chore: cleanup * refactor: simplify the expression * refactor: use data widget builder * docs: clarify int constraints * refactor: migrate api * feat(cat-voices): permission handler (#3337) * chore: adding dependencies * feat: adding permission for android * feat: permission handler factory * feat: exporting models * feat: adding dependencies * fix: android manifest format * feat: adding catalyst operating system * feat: adding catalyst operating system * feat: refactor to used rationale and explanation exception * feat: adding queue * chore: remove android manifest permission * fix: remove white space and sort intl * chore: change location of permission_mixin * chore: remove unused file * feat(cat-voices): native drift (mobile) db (#3371) * define native database and its paths * docs: update README * chore: markdown formatting * fix: readme * feat(cat-voices): io downloader (#3361) * chore: adding dependencies * feat: adding permission for android * feat: permission handler factory * feat: exporting models * feat: adding dependencies * fix: android manifest format * feat: adding catalyst operating system * feat: adding catalyst operating system * feat: refactor to used rationale and explanation exception * feat: adding queue * chore: remove android manifest permission * fix: remove white space and sort intl * feat: io downloader implementation * chore: remove comments * fix: spelling * feat: extracting common logic * chore: update logic for downloader class * chore: remove unused mixin * fix: format * chore: review update * chore: set default strategy * chore: remove files * chore: added permission * chore: remove old files * feat(cat-voices): uploader service (#3376) * feat: uploader service * chore: review update * feat(cat-voices): Discovery Page mobile screen adjustment (#3380) * feat: adjust discovery page to mobile screen * feat: adding responsive_sized_box * chore: review update * chore: update docs * feat(cat-voices): proposals page - mobile (#3377) * single out single_select_dropdown.dart and clean up imports * refactor: making ProposalsOrderDropdown little more flexible * wrapping order dropdown * fix selector List problem * fix: divider and spacings * chore: PaginatedGridView response alignment * feat: response header and content padding * chore: cleanup imports * ripple borders * feat(cat-voices): registration mobile - part 1 (#3393) * chore: rename VoicesTwoPaneDialog to VoicesTwoPanelDialog * add fullscreenDialog parameter * chore: split RegistrationDialog into smaller widgets * move constraints directly to Dialog parameter * refactor: upload dialog splitted into smaller widgets * chore: use spacing instead of separatedBy * use Visibility.maintain * use SizeBox-es instead of paddings * chore: VoicesAlertDialog now uses BoxConstraints instead of SizedBox * wip * chore: vertical panels * cleanup info container * chore: update VoicesPanelsDialog docs and make it more generic * Remove ResponsiveBreakpointKey.other * loose constrains for mobile * PR review updates * chore: typo * feat(cat-voices): Mobile support for category detail page (#3392) * feat: initial screen adjustements * feat: mobile support category detail page * chore: review update * chore: use sizeOf * feat: registration mobile - part 2 (#3395) * chore: rename VoicesTwoPaneDialog to VoicesTwoPanelDialog * add fullscreenDialog parameter * chore: split RegistrationDialog into smaller widgets * move constraints directly to Dialog parameter * refactor: upload dialog splitted into smaller widgets * chore: use spacing instead of separatedBy * use Visibility.maintain * use SizeBox-es instead of paddings * chore: VoicesAlertDialog now uses BoxConstraints instead of SizedBox * wip * chore: vertical panels * cleanup info container * chore: update VoicesPanelsDialog docs and make it more generic * Remove ResponsiveBreakpointKey.other * loose constrains for mobile * PR review updates * chore: typo * chore: remove scroll from dialog vertical panels impl * chore: registration is web only * Enable importing SeedPhrase * chore: minor adjustments * fix: SeedPhrase test * chore: cleanup func name * feat(cat-voices): responsive account page (#3396) * revert ResponsiveStateResolver to use width instead of shortestSide * ColumnsRow updates * AccountPage tiles responsive adjustments * learn more button * cleanup dialogs * more adjustments * discovery deleted confirm * fix: failing test * remove buttons global _launch in favour of LaunchUrlMixin * simplify keychain delete low * remove covariant * fix proposals page for small screens (#3405) * feat(cat-voices): workspace responsiveness (#3401) * feat: adding responsiveness to workspace * chore: remove unused param * chore: review update * feat(cat-voices): catalyst compression with rust (#3370) * chore: upgrade CI * chore: generate code * feat: generate catalyst_compression_native with flutter_rust_bridge * feat: signatures for rust functions * chore: regenerate * feat: implement brotli decoder * feat: add zstd algorithm * chore: replace catalyst_compression with native rust implementation * refactor: rename frb crates * chore: rename compression native to compression * refactor: cleanup unnecessary web prefix * fix: web prefix * feat: add wasm_bindgen module name * fix: add missing param * feat: update flutter_rust_bridge * chore: pin flutter_rust_bridge to git hosted version * feat: custom thread pool * feat: custom thread pool in key derivation package * chore: generated files * feat: config * chore: generate code * chore: cleanup + lints * chore: add compression rust tests * chore: sync missing files * chore: allow github repo * chore: sync configs * chore: fix lints, add code generation to pre-push * chore: cleanup and lint issues * chore: generate code * fix: wrong type * chore: docs and syntax fix * fix: lint issues, regenerate * fix: wasm_bindgen name * fix: lint issues, missing docs * fix: pre-push command fixes * refactor: align naming with other targets * fix: melos issues * chore: cleanup * fix: earthly targets * fix: update pre-push tasks to avoid using melos * chore: spelling * chore: reformat * feat(cat-voices): voting page responsiveness (#3407) * fix(cat-voices): Ada symbol does not render on android (#3409) * fix: google fonts unable to display ada symbol * chore: reformat * chore: reformat * feat(cat-voices): proposal page responsiveness (#3410) * feat: proposal responsiveness * chore: review update * feat(cat-voices): versioning from tags (#3399) * test * tag version without handling suffixes * handling build_name suffixes * remove debug prints * docs * refactor(cat-voices): responsive builder best matching breakpoint (#3421) * refactor: attempt to find best matching breakpoint * refactor: responsive builder usage and responsive padding * refactor: remove other or fallback from responsive widgets * chore: tests * chore: cleanup * refactor: reimplement responsive to allow const constructors * chore: cleanup * chore: reformat * chore: cleanup * chore: more tests * feat(cat-voices): proposal builder responsiveness (#3432) * feat: adding responsiveness * chore: review update * chore: remove unused widget * feat(cat-voices): Responsive app bar (#3434) * refactor: split into more widgets * chore: reformat code * feat: responsive appbar action buttons * feat: update button ui * fix(cat-voices): Running unit tests in earthly on macos (#3477) * fix: running unit tests in earthly in mac on arm64 * fix: cleanup * feat(cat-voices): switch to flutter_rust_bridge iohk fork (#3478) * feat: switch to iohk fork of flutter_rust_bridge * chore: sync cfg * feat: update flutter_rust_bridge version * feat: update flutter rust bridge * feat: lock wasm-bindgen last working version * fix: update flutter_rust_bridge version * fix: ignore unused deps * feat: regenerate code * fix: running unit tests in earthly in mac on arm64 * fix: cleanup * chore: cleanup * chore: sync-cfg * chore(cat-voices): update README with added Platforms mentioned (#3486) * chore: update README with added Platforms mentioned * chore: fix check-markdown * fix: sentry auth token in docker target (#3487) * chore: switch ci to versioned release --------- Co-authored-by: Dominik Toton <166132265+dt-iohk@users.noreply.github.com> Co-authored-by: Dominik Toton <dominik.toton@iohk.io> Co-authored-by: Damian Moliński <47773413+damian-molinski@users.noreply.github.com> Co-authored-by: Damian Molinski <damian.molinski@iohk.io>
* feat(cat-voices): update android config (#3298) * feat: android app name * chore: update gradle * feat: transform groove to kotlin * feat: adding icons * feat: update background in loading in app splash for mobile * feat: update app flavor and env selection * feat: update grade-wrapper * feat: use specific sdk version * feat: update key derivation android config * feat: update remote_widgets android config * feat: update bundle id * fix: spelling * feat(cat-voices): update recommended settings and readme (#3321) * feat: update recommended settings and readme * fix: format * fix: format * feat: remove flavor from name * feat(cat-voices): ios config (#3315) * feat: podfile update * feat: update icons * feat: update pod file * feat: update catalyst key derivation * feat: update remote_widgets * chore: remove Podfile.lock from tracking and to gitignore * chore: update build targets * chore: add files to earthlyignore * refactor(cat-voices): split catalyst platform into operating system and form factor enums (#3317) * refactor: split catalyst platform into os and form factor * chore: cleanup * refactor: unify mobile detection * feat: allow embed builders on web only * chore: cleanup tests * chore: cleanup * refactor: simplify the expression * refactor: use data widget builder * docs: clarify int constraints * refactor: migrate api * feat(cat-voices): permission handler (#3337) * chore: adding dependencies * feat: adding permission for android * feat: permission handler factory * feat: exporting models * feat: adding dependencies * fix: android manifest format * feat: adding catalyst operating system * feat: adding catalyst operating system * feat: refactor to used rationale and explanation exception * feat: adding queue * chore: remove android manifest permission * fix: remove white space and sort intl * chore: change location of permission_mixin * chore: remove unused file * feat(cat-voices): native drift (mobile) db (#3371) * define native database and its paths * docs: update README * chore: markdown formatting * fix: readme * feat(cat-voices): io downloader (#3361) * chore: adding dependencies * feat: adding permission for android * feat: permission handler factory * feat: exporting models * feat: adding dependencies * fix: android manifest format * feat: adding catalyst operating system * feat: adding catalyst operating system * feat: refactor to used rationale and explanation exception * feat: adding queue * chore: remove android manifest permission * fix: remove white space and sort intl * feat: io downloader implementation * chore: remove comments * fix: spelling * feat: extracting common logic * chore: update logic for downloader class * chore: remove unused mixin * fix: format * chore: review update * chore: set default strategy * chore: remove files * chore: added permission * chore: remove old files * feat(cat-voices): uploader service (#3376) * feat: uploader service * chore: review update * feat(cat-voices): Discovery Page mobile screen adjustment (#3380) * feat: adjust discovery page to mobile screen * feat: adding responsive_sized_box * chore: review update * chore: update docs * feat(cat-voices): proposals page - mobile (#3377) * single out single_select_dropdown.dart and clean up imports * refactor: making ProposalsOrderDropdown little more flexible * wrapping order dropdown * fix selector List problem * fix: divider and spacings * chore: PaginatedGridView response alignment * feat: response header and content padding * chore: cleanup imports * ripple borders * feat(cat-voices): registration mobile - part 1 (#3393) * chore: rename VoicesTwoPaneDialog to VoicesTwoPanelDialog * add fullscreenDialog parameter * chore: split RegistrationDialog into smaller widgets * move constraints directly to Dialog parameter * refactor: upload dialog splitted into smaller widgets * chore: use spacing instead of separatedBy * use Visibility.maintain * use SizeBox-es instead of paddings * chore: VoicesAlertDialog now uses BoxConstraints instead of SizedBox * wip * chore: vertical panels * cleanup info container * chore: update VoicesPanelsDialog docs and make it more generic * Remove ResponsiveBreakpointKey.other * loose constrains for mobile * PR review updates * chore: typo * feat(cat-voices): Mobile support for category detail page (#3392) * feat: initial screen adjustements * feat: mobile support category detail page * chore: review update * chore: use sizeOf * feat: registration mobile - part 2 (#3395) * chore: rename VoicesTwoPaneDialog to VoicesTwoPanelDialog * add fullscreenDialog parameter * chore: split RegistrationDialog into smaller widgets * move constraints directly to Dialog parameter * refactor: upload dialog splitted into smaller widgets * chore: use spacing instead of separatedBy * use Visibility.maintain * use SizeBox-es instead of paddings * chore: VoicesAlertDialog now uses BoxConstraints instead of SizedBox * wip * chore: vertical panels * cleanup info container * chore: update VoicesPanelsDialog docs and make it more generic * Remove ResponsiveBreakpointKey.other * loose constrains for mobile * PR review updates * chore: typo * chore: remove scroll from dialog vertical panels impl * chore: registration is web only * Enable importing SeedPhrase * chore: minor adjustments * fix: SeedPhrase test * chore: cleanup func name * feat(cat-voices): responsive account page (#3396) * revert ResponsiveStateResolver to use width instead of shortestSide * ColumnsRow updates * AccountPage tiles responsive adjustments * learn more button * cleanup dialogs * more adjustments * discovery deleted confirm * fix: failing test * remove buttons global _launch in favour of LaunchUrlMixin * simplify keychain delete low * remove covariant * fix proposals page for small screens (#3405) * feat(cat-voices): workspace responsiveness (#3401) * feat: adding responsiveness to workspace * chore: remove unused param * chore: review update * feat(cat-voices): catalyst compression with rust (#3370) * chore: upgrade CI * chore: generate code * feat: generate catalyst_compression_native with flutter_rust_bridge * feat: signatures for rust functions * chore: regenerate * feat: implement brotli decoder * feat: add zstd algorithm * chore: replace catalyst_compression with native rust implementation * refactor: rename frb crates * chore: rename compression native to compression * refactor: cleanup unnecessary web prefix * fix: web prefix * feat: add wasm_bindgen module name * fix: add missing param * feat: update flutter_rust_bridge * chore: pin flutter_rust_bridge to git hosted version * feat: custom thread pool * feat: custom thread pool in key derivation package * chore: generated files * feat: config * chore: generate code * chore: cleanup + lints * chore: add compression rust tests * chore: sync missing files * chore: allow github repo * chore: sync configs * chore: fix lints, add code generation to pre-push * chore: cleanup and lint issues * chore: generate code * fix: wrong type * chore: docs and syntax fix * fix: lint issues, regenerate * fix: wasm_bindgen name * fix: lint issues, missing docs * fix: pre-push command fixes * refactor: align naming with other targets * fix: melos issues * chore: cleanup * fix: earthly targets * fix: update pre-push tasks to avoid using melos * chore: spelling * chore: reformat * feat(cat-voices): voting page responsiveness (#3407) * fix(cat-voices): Ada symbol does not render on android (#3409) * fix: google fonts unable to display ada symbol * chore: reformat * chore: reformat * feat(cat-voices): proposal page responsiveness (#3410) * feat: proposal responsiveness * chore: review update * feat(cat-voices): versioning from tags (#3399) * test * tag version without handling suffixes * handling build_name suffixes * remove debug prints * docs * refactor(cat-voices): responsive builder best matching breakpoint (#3421) * refactor: attempt to find best matching breakpoint * refactor: responsive builder usage and responsive padding * refactor: remove other or fallback from responsive widgets * chore: tests * chore: cleanup * refactor: reimplement responsive to allow const constructors * chore: cleanup * chore: reformat * chore: cleanup * chore: more tests * feat(cat-voices): proposal builder responsiveness (#3432) * feat: adding responsiveness * chore: review update * chore: remove unused widget * feat(cat-voices): Responsive app bar (#3434) * refactor: split into more widgets * chore: reformat code * feat: responsive appbar action buttons * feat: update button ui * feat: configure dart workspaces * chore: refine example package name * feat: migrate melos to workspaces * chore: migrate licenses generator * chore: reformat * feat: migrate licenses * chore: missing licenses, cleanup * docs: update outdated docs * feat: add missing requirements * refactor: simplify version management * feat: add missing requirements * chore: update ci version * feat: migration, allow concurrency in melos * refactor: order dependents * feat: more concurrency * feat: concurrency * fix: warnings * fix: concurrency * fix: reporters * feat: no concurrency param * fix: revert ffigen * docs: fix markdown * feat: update flutter rust bridge * feat: migrate rust codegen * fix: update flutter_rust_bridge to address wasm-bindgen-cli * feat: update frb * fix: downgrade frb * fix(cat-voices): Running unit tests in earthly on macos (#3477) * fix: running unit tests in earthly in mac on arm64 * fix: cleanup * feat(cat-voices): switch to flutter_rust_bridge iohk fork (#3478) * feat: switch to iohk fork of flutter_rust_bridge * chore: sync cfg * feat: update flutter_rust_bridge version * feat: update flutter rust bridge * feat: lock wasm-bindgen last working version * fix: update flutter_rust_bridge version * fix: ignore unused deps * feat: regenerate code * fix: running unit tests in earthly in mac on arm64 * fix: cleanup * chore: cleanup * chore: sync-cfg * fix: missing workspace resolution * fix: incompatible ffigen version * fix: pre-push command * Apply suggestion from @LynxLynxx Co-authored-by: Ryszard Schossler <51096731+LynxLynxx@users.noreply.github.com> * chore: revert docs * chore: use versioned CI version --------- Co-authored-by: Ryszard Schossler <51096731+LynxLynxx@users.noreply.github.com> Co-authored-by: Damian Moliński <47773413+damian-molinski@users.noreply.github.com> Co-authored-by: Damian Molinski <damian.molinski@iohk.io>
Description
catalyst_compression
with rust using flutter_rust_bridge.catalyst_compression
. The federated packages published to pub.dev will be discontinued, onlycatalyst_compression
will remain active.catalyst_key_derivation
.flutter_rust_bridge
since the official version doesn't allow to run two packages built with the tool in the same app on the web platform. Each package exports global modules underwindow.wasm_bindgen
and they conflict with each other. The fork added configuration options to differentiate between modules. The changes done in the fork will be moved to iohk owned repository once it is available. A PR will be opened to merge the changes from the fork to the official version.flutter_rust_bridge
boilerplate that must be committed into the repository. You can skip reviewing it (pattern for these files:**/cargokit/**
).pre-push
tasks in alljustfile
s to make sure all necessary checks are run.Related Issue(s)
Closes #3266
Depends on input-output-hk/catalyst-ci#448
Please confirm the following checks