Cursor rule
.cursor/rules/architecture.mdcProject architecture and crate structure for skia-rs
Cursor rules
Quality
62/100
Scores the file, not the repository.Length
324 words
5 headings · 4 code blocksRepository
28
— · pushed 21 days agoLast changed
3 days ago
First indexed 3 days ago.1234567# Skia-RS Architecture89Skia-RS is a 100% Rust implementation of Google's Skia 2D graphics library, designed for API compatibility with the original C++ Skia library. The project provides both a native Rust API and C FFI bindings for cross-language interoperability.1011## Workspace Structure1213```14skia-rs/15├── crates/16│ ├── skia-rs-core/ # Foundation: Scalar, Point, Rect, Color, Matrix, ImageInfo17│ ├── skia-rs-path/ # Path geometry: Path, PathBuilder, PathOps, PathEffects18│ ├── skia-rs-paint/ # Styling: Paint, Shaders, BlendModes, Filters19│ ├── skia-rs-canvas/ # Drawing: Canvas, Surface, Picture recording20│ ├── skia-rs-text/ # Typography: Font loading, text shaping, layout21│ ├── skia-rs-gpu/ # GPU backends: Vulkan, OpenGL, WebGPU22│ ├── skia-rs-codec/ # Image I/O: PNG, JPEG, GIF, WebP23│ ├── skia-rs-svg/ # SVG support: parsing and rendering24│ ├── skia-rs-pdf/ # PDF generation25│ ├── skia-rs-ffi/ # C API bindings for FFI26│ ├── skia-rs-safe/ # High-level ergonomic Rust API27│ └── skia-rs-bench/ # Performance benchmarks28├── fuzz/ # Fuzz testing with cargo-fuzz/libFuzzer29├── skia/ # Official Skia submodule (reference)30└── TODO.md # Development roadmap31```3233## Crate Dependencies3435```36skia-rs-core (no internal deps)37 ↓38skia-rs-path (depends on: core)39 ↓40skia-rs-paint (depends on: core, path)41 ↓42skia-rs-canvas (depends on: core, path, paint)43 ↓44skia-rs-text (depends on: core, path, paint)45 ↓46skia-rs-gpu (depends on: core, path, paint, canvas)47skia-rs-codec (depends on: core)48skia-rs-svg (depends on: core, path, paint, canvas)49skia-rs-pdf (depends on: core, path, paint, canvas, text)50 ↓51skia-rs-ffi (depends on: all above)52skia-rs-safe (depends on: all above, re-exports)53```5455## File Organization5657Each crate should follow this structure:5859```60crates/skia-rs-{name}/61├── Cargo.toml62├── src/63│ ├── lib.rs # Module declarations and re-exports64│ ├── {feature}.rs # Feature implementations65│ └── ...66```6768## Re-exports6970- `lib.rs` should re-export all public types71- Use `pub use module::*;` for complete re-exports72- Group related items in modules7374```rust75// lib.rs76pub mod color;77pub mod geometry;78pub mod matrix;7980pub use color::*;81pub use geometry::*;82pub use matrix::*;83```84
Also in quinnjr/skia-rs
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| quinnjr/skia-rs.cursor/rules/api-design.mdc · 28 | Cursor rules | buildstyleapi | 58/100 | 3 days ago | |
| quinnjr/skia-rs.cursor/rules/ffi.mdc · 28 | Cursor rules | typesapi | 45/100 | 3 days ago | |
| quinnjr/skia-rs.cursor/rules/benchmarking.mdc · 28 | Cursor rules | styleperformance | 69/100 | 3 days ago | |
| quinnjr/skia-rs.cursor/rules/code-style.mdc · 28 | Cursor rules | styletypesperformancedeployment+1 | 62/100 | 3 days ago | |
| quinnjr/skia-rs.cursor/rules/commands.mdc · 28 | Cursor rules | buildtestlint-formatgit+4 | 82/100 | 3 days ago | |
| quinnjr/skia-rs.cursor/rules/fuzzing.mdc · 28 | Cursor rules | setupstyle | 69/100 | 3 days ago | |
| quinnjr/skia-rs.cursor/rules/gpu.mdc · 28 | Cursor rules | no sections | 36/100 | 3 days ago | |
| quinnjr/skia-rs.cursor/rules/testing.mdc · 28 | Cursor rules | test | 69/100 | 3 days ago |
Diff against .cursor/rules/api-design.mdc Diff against .cursor/rules/ffi.mdc Diff against .cursor/rules/benchmarking.mdc Diff against .cursor/rules/code-style.mdc Diff against .cursor/rules/commands.mdc Diff against .cursor/rules/fuzzing.mdc Diff against .cursor/rules/gpu.mdc Diff against .cursor/rules/testing.mdc
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 3 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 45 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 3 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 3 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 3 days ago | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 45 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 3 days ago |
