Skip to content

Latest commit

 

History

History
32 lines (19 loc) · 1.67 KB

File metadata and controls

32 lines (19 loc) · 1.67 KB
title Use PostgreSQL as full GUI data backend for JabRef
author jabref
categories
gsoc2026
tags
project-idea
size-medium

Currently, JabRef GUI holds all entries in memory. It even converts LaTeX to Unicode and vice versa to support better search. While this is a great UX, this leads to a huge memory consumption. The more "proper" way is to use a database (such as PostgreSQL) to store the entries. Then, not all entries need to be loaded in memory. The first step is to introduce a data-access layer: The maintable should read from SQL database, not from all in-memory. Possible future work may be: https://www.zotero.org/support/dev/client_coding/direct_sqlite_database_access and https://github.com/zotero/zotero/blob/main/resource/schema/userdata.sql.

There can be an initial phase to evaluate whether PostgreSQL is the right DBMS as backend for JabRef. For instance, DuckDB and SQLite were also discussed. Currently, PostgeSQL turned out best (especially for handling regular expression search on the database itself), but things may have changed in 2026.

This is issue JabRef/jabref#12708.

Skills required:

  • PostgreSQL, Java, JavaFX

Code places to start to look at:

  • org.jabref.gui.maintable.MainTableFieldValueFormatter#formatFieldsValues

Starting points:

  • Document the maintable of JabRef using Markdown and UML (starting point: org.jabref.gui.util.ValueTableCellFactory)

Possible Mentors:

@koppor, @InAnYan, @calixtus, @k3KAW8Pnf7mkmdSMPHz27

Project size:

175h (medium)