palm.rs update #1: 2021-09-15
A couple days ago (I think? The days are blurring together), I decided that I
wanted to write some tools for interacting with Palm OS devices (and their
data) from a modern Linux system.
pilot-link is horribly outdated (and
riddled with bugs, besides), and I don’t really want to use an ancient Windows
machine just to sync my LifeDrive.
And so, palm.rs was born. palm.rs is the beginning of a set of libraries and command-line tools for managing data from Palm OS devices, and will (hopefully, eventually) include a functional HotSync manager.
The beginnings: Palm OS databases
I started off with writing the
palmrs-database crate, a general-purpose
library for reading and writing Palm OS database files. Pretty essential to
have this to do literally anything else, so it was the first thing that was
It’s currently in a state where it can parse Palm OS databases - both PDB and PRC formats (since they’re basically the same anyway) - into a form that other tools can take and run with.
I also wrote the
palmrs-db-dump command-line tool, which prints the parsed
headers of a Palm OS database, and optionally prints a pretty hex dump of each
individual section. It’s basically palmdump, but using the fancy new
palmrs-database crate instead of being written in an ancient C dialect.
Here’s a screenshot of
palmrs-db-dump in action, dumping a “hello world”
Palm OS application:
Database dump of a hello world app
HotSync conduits, sort of: todo.txt support
The next thing (which is part of the reason I started this whole damn project
in the first place) is a way to transform a Palm OS
ToDoDB.pdb into a
todo.txt formatted file. Having the
palmrs-database crate implemented in
the way that it is made this relatively easy, after some faffing around with
figuring out the damn
ToDoDB record format.
In it’s current state, the
palmrs-conduit-todotxt binary works to transform a
ToDoDB.pdb into a
todo.txt file (or, two files:
and this is working rather well:
Generating todo.txt files from a Palm database - yes please!
The next step: converting a
todo.txt file back into a
ToDoDB.prc file, such
that I can throw that at Palm Desktop and cross my fingers.
It’s getting ever closer to 05:30 local time, and we’ve been awake for 45 hours.
Maybe it’s time for a nap.