Citation manager (ideally in rust)

I’ve just started an academic course, and one of my first tasks is to write a literature review. I’m really struggling with managing my papers - none of the solutions out there meet my requirements. My main one that is not satisfied (by Mendeley, EndNote etc.) is that it is open source, and not just that the code is public - that it is a suite I can run on my computer without internet access, that is built on solid filesystem and database technology e.g. sqlite, so I can just dump my tool and use sql if I want, and that wont do an Elsevier.

I’m gonna make one when I get time (in rust obviously) but that time is not now, and also I don’t wanna just redo something that already exists, so my question is: does such a system exist?

I’m asking here because rust people are very clever, and also share my values, so understand my requirements for hackability. Apologies if this is OT. :stuck_out_tongue:

So my ideal features are

  1. Blobs go in the filesystem, metadata goes in a database.
  2. Can deal with incomplete metadata, or metadata with no paper.
  3. Can import/export citations in a variety of formats (I use bibtex but not everyone is me)
  4. Can fetch metadata from ISBN, DOI, others, using web APIs
  5. A nice user interface for exploring my papers
  6. Easy to backup, copy, restore
  7. Then other things, like maybe somewhere to store datasets, other stuff thats not papers.

I don’t really have any software recommendations, but one of my projects I’ve been working on is a photo manager which ticks a few of your requirements and might be useful for inspiration if you do decide to write your own. https://github.com/thezoq2/flash

Photos and videos are stored in the file system, tags and other data is stored in a postgres database, it has a web interface written in elm which I found very nice to use. Things are stored asyncronously, so every device you sync is a backup. The code for that is mostly in src/sync.rs

1 Like

Hmm I hadn’t thought of using web tech, but it probably makes sense. I should write some sort of service, so that I could add in a non-web frontend in the future.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.