How shazamifius/glucosegit works
Glucose is a native Rust infinite canvas for arranging images and Markdown cards, linking ideas, and navigating large visual documents. The user workflow begins with canvas gestures and file drops, edits a document held by the core store, then renders the result through the desktop presentation stack; documents can also be imported, saved, and exported. The README documents capabilities beyond the sampled source, so those are represented at subsystem level without asserting unsampled call wiring. The excerpts support specific interactions and rendering details, but not every dispatch path.
Main entry points: store.rs Document store · renderer.rs Scene renderer · mod.rs Canvas gestures · types.rs Canvas entities
Components 23
Desktop interaction
- App startup
crates/glucose-desktop/src/main.rs - Event loop app
crates/glucose-desktop/src/app.rs - Canvas gestures
crates/glucose-desktop/src/interactions/mod.rs - Drag alignment
crates/glucose-desktop/src/interactions/drag.rs - Image crop
crates/glucose-desktop/src/interactions/recadrage.rs - Link text editor
crates/glucose-desktop/src/interactions/ancrage.rs - Canvas controls
crates/glucose-desktop/src/ui.rs
Document model
- Document store
crates/glucose-core/src/store.rs - Canvas entities
crates/glucose-core/src/types.rs - Links and anchors
crates/glucose-core/src/arrow.rs - Markdown text
crates/glucose-core/src/text.rs - Spatial indexing
crates/glucose-core/src/quadtree.rs - Layout geometry
crates/glucose-math/src/lib.rs
Canvas presentation
- Scene renderer
crates/glucose-desktop/src/renderer.rs - GPU presentation
crates/glucose-desktop/src/present/gpu.rs - Adaptive quality
crates/glucose-desktop/src/resolution.rs
Document files
- Save and export
crates/glucose-desktop/src/persist.rs - Document encoding
crates/glucose-core/src/persist.rs - Image import
crates/glucose-core/src/store/importer.rs
Platform services
- Windows web drop
crates/glucose-desktop/src/interactions/depot_web.rs
Other components
- User
- Dropped files
- Clipboard
Connections 26
- User → App startup: launches
- App startup → Event loop app: runs event loop
- User → Canvas gestures: edits canvas
- Canvas gestures → Event loop app: handles events
- Drag alignment → Document store: moves selection
- Image crop → Document store: updates crop
- Image crop → Scene renderer: reads image pixels
- Link text editor → Document store: reads annotations
- Link text editor → Links and anchors: edits anchors
- Canvas controls → Document store: reads document state
- Document store → Canvas entities: holds entities
- Document store → Spatial indexing: indexes canvas
- Links and anchors → Canvas entities: uses anchors
- Markdown text → Canvas entities: models card text
- Layout geometry → Scene renderer: provides layout
- Scene renderer → Document store: reads canvas
- Scene renderer → GPU presentation: presents scene
- Adaptive quality → Scene renderer: sets render quality
- User → Dropped files: drops images
- Dropped files → Image import: imports files
- User → Clipboard: copies content
- Clipboard → Canvas gestures: pastes content
- Windows web drop → Image import: fetches image
- Save and export → Document encoding: encodes document
- Document encoding → Document store: serializes state
- User → Save and export: saves or exports