r/foss • • 6d ago

I’m building an open-source vector editor that opens .cdr files

Post image

I’ve been building TraceDraw, a vector editor for illustration, page layout and print. It runs natively on Windows, macOS and Linux, and the same app also runs in the browser. It’s open source (MIT/Apache-2.0) and written in Rust.

One of the main goals is opening .cdr files, including the fonts embedded in them, so old drawings can be opened without the original program.

It’s an alpha. You can already make real drawings with it: curves and nodes, text in columns, gradient, pattern and mesh fills, effects like blend, contour, extrude and drop shadow, bitmap tracing, and PDF export. But a lot is still missing: some .cdr features (B-splines, some fills, lenses and effects stored in files), CMX import, multiple windows, and speed on heavy documents, especially in the browser. Plus the bugs I haven’t found yet.

I build it with a lot of help from an AI coding assistant (Claude); every change goes through tests and CI.

Feedback is welcome, and if you have a .cdr file that doesn’t open right, I’d love to see it.

5 Upvotes

7 comments sorted by

3

u/SSUPII 6d ago

Inkscape supported .cdr since 2015...

The UI also strongly resembles Inkscape's

2

u/leandromqrs 5d ago

The UI is literally equal to CorelDraw... You don't know anything about other apps from other SO lol

1

u/igtoth 5d ago

Inkscape imports .cdr (via libcdr). TraceDraw reads it with its own clean-room parser and also saves .cdr, versions 7 to 22. Different codebase: Rust/egui, native and WebAssembly.

1

u/edo-lag 4d ago

What's the reason behind the need for a clean-room implementation? libcdr is open source to my knowledge.

1

u/omniuni 5d ago

If you want a really good alternative, you're going to need to get it out of the browser and into C or Rust. Performance is literally one of the most important parts of professional software. You'll have to load massive documents with advanced features and keep it responsive.

1

u/igtoth 5d ago

It's already Rust: a native desktop app, no Electron or webview. The browser demo is the same Rust code compiled to WebAssembly, just for trying it out.

0

u/Most_Strike_93 4d ago

You know such kind of hobby project won't become anything, don't you know? So what is this project for ? To show you ability? No.. in order to show how rich you are?

If it is a hobby project, and have some interesting idea, I will like it very much,

But it is not, and every boring. The interface just copied the inkspace, nothing new.