Skip to content

Commit a7d3d89

Browse files
committed
News: GSoC 2025 - Contributors/Projects: Added Titiksha Bansal's report
1 parent f29b143 commit a7d3d89

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

_posts/2025-06-26-OpenPrinting News - Google Summer of Code 2025 - Contributors selected and projects started.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,33 @@ Mentors: **Jynn Nelson**, **Michael Murphy**, Till Kamppeter, Chandresh Soni, Pr
118118
Description from proposal:
119119
> The Common Print Dialog Backends (cpdb-libs) library from OpenPrinting serves as a bridge between application print dialogs (like GTK, Qt, LibreOffice, Firefox, Chromium, etc.) and diverse print technologies (such as CUPS/IPP and cloud printing services). It decouples application UIs from backend print systems, enabling more flexible and rapid integration of new print technologies across all platforms. While it's natively written in C, bindings are required for other languages. Rust, known for its safety and concurrency advantages, currently lacks such bindings. This project aims to develop safe and idiomatic Rust bindings for cpdb-libs, enabling seamless integration of modern print backend capabilities in Rust-based applications.
120120
121+
Titiksha's report for the first month:
122+
> Project Progress
123+
> 1. Project Setup
124+
> - Created Rust project structure with bindgen integration
125+
> - Successfully generated FFI bindings for cpdb-libs (v2.3)
126+
> - Implemented safe Rust wrappers for core printer management functions
127+
> 2. Key Implementations
128+
> - Printer discovery and job submission workflows
129+
> - Memory-safe resource handling with proper RAII patterns
130+
> - Async callback translation (C → Rust) for printer updates
131+
>
132+
> Challenges Faced
133+
> 1. FFI Compatibility<BR>
134+
> Issue: Rust 2024's stricter unsafe extern requirements<BR>
135+
> Solution: Added build.rs post-processing to modify generated bindings
136+
> 2. Function Naming<BR>
137+
> Issue: Mismatch between C (camelCase) and Rust (snake_case) conventions<BR>
138+
> Solution: Standardized on exact C function names in FFI calls
139+
> 3. Memory Safety<BR>
140+
> Issue: Proper cleanup of C-allocated resources<BR>
141+
> Solution: Implemented Drop traits with null checks for all wrapper types
142+
>
143+
> Areas Needing Guidance
144+
> 1. Advanced Features
145+
> - Help needed with media/margin handling implementations
146+
> - Clarification on translation table management
147+
121148
Here is Titiksha's work in her [GitHub repository](https://github.com/TitikshaBansal/cpdb-rs).
122149

123150

0 commit comments

Comments
 (0)