{"id":16312472,"url":"https://github.com/kiranandcode/libreref","last_synced_at":"2025-10-25T16:31:44.466Z","repository":{"id":112326020,"uuid":"381703034","full_name":"kiranandcode/LibreRef","owner":"kiranandcode","description":"LibreRef is a free as in freedom digital referencing tool for artists.","archived":false,"fork":false,"pushed_at":"2021-07-01T01:25:29.000Z","size":1499,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-31T09:02:49.588Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kiranandcode.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-30T12:59:10.000Z","updated_at":"2024-09-04T18:52:43.000Z","dependencies_parsed_at":"2023-05-12T23:15:27.570Z","dependency_job_id":null,"html_url":"https://github.com/kiranandcode/LibreRef","commit_stats":null,"previous_names":["kiranandcode/libreref"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiranandcode%2FLibreRef","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiranandcode%2FLibreRef/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiranandcode%2FLibreRef/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiranandcode%2FLibreRef/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kiranandcode","download_url":"https://codeload.github.com/kiranandcode/LibreRef/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238183414,"owners_count":19430109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T21:48:10.904Z","updated_at":"2025-10-25T16:31:39.088Z","avatar_url":"https://github.com/kiranandcode.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LibreRef\n***NOTE: This is a M$ github mirror of LibreRef's main repository which is [hosted on Gitlab](https://gitlab.com/gopiandcode/libre-ref/). Please see the Gitlab version to keep up to date with the latest version of LibreRef.***\n\n \u003cimg\n src=\"https://raw.githubusercontent.com/Gopiandcode/LibreRef/master/resources/libre-ref-logo.png\"\n width=\"20%\" height=\"20%\"\u003e\n\n\u003e LibreRef is a free as in freedom digital referencing tool for artists.\n\nUsage: \n   - Middle-mouse to move view\n   - Left click to select images\n   - Right click to open menu\n   - Drag and drop images into display\n\n# Download\n\nLibreRef is distributed as an AppImage for easy use: \n\n - X86_64: [libre-ref-x86_64](https://github.com/Gopiandcode/LibreRef/releases/download/v1.0.0-GH/libre-ref-x86_64.AppImage)\n\n# Screenshots\n\n(A picture is worth a thousand words)\n\n\u003cimg src=\"https://raw.githubusercontent.com/Gopiandcode/LibreRef/master/images/splash.png\" width=\"30%\" height=\"30%\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/Gopiandcode/LibreRef/master/images/options.png\" width=\"30%\" height=\"30%\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/Gopiandcode/LibreRef/master/images/scaling.png\" width=\"30%\" height=\"30%\"\u003e\n\n# Videos\n\n![basic functionality](https://raw.githubusercontent.com/Gopiandcode/LibreRef/master/images/basic_functionality.gif)\n\n![resizing and multiple](https://raw.githubusercontent.com/Gopiandcode/LibreRef/master/images/resizing_and_multiple.gif)\n\n![paste from online](https://raw.githubusercontent.com/Gopiandcode/LibreRef/master/images/paste_from_online.gif)\n\n![deleting images](https://raw.githubusercontent.com/Gopiandcode/LibreRef/master/images/deleting_images.gif)\n\n\n# Building from Source\n\nTo build this project from source, you will need to have the Opam OCaml package manager installed on your system, with a 4.12.0 OCaml compiler switch.\n\nMake sure the following OCaml packages are installed (`opam install \u003cpackage-name\u003e`):\n\n - cmdliner \n - data-encoding \n - lablgtk3 \n - stb_image \n - bos \n - piaf\n\nTo build LibreRef from source, simply execute the following command from the project root:\n```\nopam exec -- dune build ./libre_ref.exe\n```\n\nAdditionally, to produce a deployable AppImage file for LibreRef, simply run the `build_appimage.sh` script from the project root.\n\nNote: you will have to have the linuxdeploy and appimagetool appimages on your path.\n\n# Project Architecture\nThe LibreRef project is structured as follows:\n```\n./\n|-- resources                         - application resources\n|-- LICENSE                           - LICENSE for source code (AGPL)\n|-- libre-ref.opam                    - opam project description\n|-- dune                              - build tool (dune) project description\n|-- dune-project\n|-- build_appimage.sh                 - deployment script\n|-- readme.md                         - readme (this document)\n|\n|                                     - application files:\n|-- libre_ref.ml\n|-- scene.ml\n|-- gui.ml(i)\n|-- config.ml\n|\n|                                     - library files:\n|-- camera.ml\n|-- error.ml\n|-- image.ml\n|-- serialized.ml\n|-- quadtree.ml\n|-- utils.ml\n`-- web.ml\n```\n\nThe source code files in this project can be broadly split into two categories:\n  - *Application files* -- these are application specific files that\n    form the core of Libre-ref's implementation and functionality\n  - *Library files* -- these are small modular reusable (usually\n    purely functional) components that provide generic features used\n    by LibreRef.\n\nTo understand how LibreRef works, when initially exploring the\nrepository, you should stick to just the core application\nimplementation files, whereas the library files may be of interest to\nbe reused in other projects (under copy-left licenses of course).\n\nBelow, we provide a brief description of the purpose of each of the core application files:\n\n- *libre_ref.ml* -- The core entry-point for the application. Handles\n  parsing the command-line arguments and then starting the GUI\n- *scene.ml* -- The functional logical core of libre-ref that\n  represents a collection of scalable and movable images\n- *gui.ml* -- The imperative~ish glue that hooks the functional core\n  of libre-ref to the Cairo GUI library\n- *config.ml* -- A small imperative/mutable component that\n  encapsulates retrieving and saving config information to and from\n  disk\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiranandcode%2Flibreref","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkiranandcode%2Flibreref","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiranandcode%2Flibreref/lists"}