{"id":13585586,"url":"https://github.com/internetarchive/fatcat","last_synced_at":"2025-04-07T12:11:03.006Z","repository":{"id":34729084,"uuid":"147703692","full_name":"internetarchive/fatcat","owner":"internetarchive","description":"Perpetual Access To The Scholarly Record","archived":false,"fork":false,"pushed_at":"2023-11-09T21:49:51.000Z","size":8805,"stargazers_count":109,"open_issues_count":57,"forks_count":19,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-04-14T02:21:40.987Z","etag":null,"topics":["digital-library","open-access","postgresql","python","rust","scholarly-communication","web-archiving"],"latest_commit_sha":null,"homepage":"https://guide.fatcat.wiki","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/internetarchive.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.AGPLv3.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-09-06T16:41:05.000Z","updated_at":"2024-04-05T09:54:32.000Z","dependencies_parsed_at":"2023-12-01T14:15:57.215Z","dependency_job_id":"4bba2019-3d90-4bd1-a0ef-9e250ace3abc","html_url":"https://github.com/internetarchive/fatcat","commit_stats":{"total_commits":3090,"total_committers":13,"mean_commits":"237.69230769230768","dds":"0.060194174757281504","last_synced_commit":"a0baed3ba900602c5879743fe555d9a8134d1536"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetarchive%2Ffatcat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetarchive%2Ffatcat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetarchive%2Ffatcat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetarchive%2Ffatcat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/internetarchive","download_url":"https://codeload.github.com/internetarchive/fatcat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247648977,"owners_count":20972945,"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":["digital-library","open-access","postgresql","python","rust","scholarly-communication","web-archiving"],"created_at":"2024-08-01T15:05:01.799Z","updated_at":"2025-04-07T12:11:02.985Z","avatar_url":"https://github.com/internetarchive.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003c!--\n              __       _            _   \n             / _| __ _| |_ ___ __ _| |_ \n            | |_ / _` | __/ __/ _` | __|\n            |  _| (_| | || (_| (_| | |_ \n            |_|  \\__,_|\\__\\___\\__,_|\\__|\n\n       perpetual access to the scholarly record\n--\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"python/fatcat_web/static/fatcat.jpg\" alt=\"photo of a cat and cup of coffee, by Quinn Kampschroer [CC-0]\"\u003e\n\u003c/div\u003e\n\n`fatcat`: Perpetual Access to the Scholarly Record\n==================================================\n\n[![pipeline status](https://gitlab.com/bnewbold/fatcat/badges/master/pipeline.svg)](https://gitlab.com/bnewbold/fatcat/commits/master)\n[![coverage report](https://gitlab.com/bnewbold/fatcat/badges/master/coverage.svg)](https://gitlab.com/bnewbold/fatcat/commits/master)\n\nThis repository contains source code for **fatcat**, an editable catalog of\npublished research (mostly journal articles), with a focus on tracking the\nlocation and status of full-text copies on the public web, to ensure long term\naccess. The primary public instance runs at [fatcat.wiki](https://fatcat.wiki).\nBoth the software project and primary instance are a project of the [Internet\nArchive](https://archive.org).\n\nSome resources for learning more about the aims, goals, and structure of this\noverall project:\n\n* **[FORCE11 2019 Presentation Video](https://www.youtube.com/watch?v=PARqfbYIdXQ)**: \"Perpetual Access Machines: Archiving Web-Published Scholarship at Scale\" (30 minutes)\n* **[\"How the Internet Archive is Ensuring Permanent Access to Open Access Journal Articles\"](https://blog.archive.org/2020/09/15/how-the-internet-archive-is-ensuring-permanent-access-to-open-access-journal-articles/)**: archive.org blog post (September 2020)\n* **[guide.fatcat.wiki](https://guide.fatcat.wiki)**: project documentation,\n  including schema overview, HOWTOs, policies, and more\n* **[Fatcat \"Request for Comment\" (RFC)](./fatcat-rfc.md)**: original project design proposal\n\n\n## Getting Started for Developers\n\nThere are three main components:\n\n- backend API server and database (in Rust)\n- API client libraries and bots (in Python)\n- front-end web interface (in Python; built on API and library)\n\nThe `python/` and `rust/` folders have their own READMEs describing how to set\nup development environments and requirements for those languages. Each also has\nMakefiles to help with builds and running tests.\n\nThe python client library, which is automatically generated from the API\nschema, lives under `./python_openapi_client/`.\n\nTo do unified development involving both the python code (web interface, bot\ncode) and the rust code (API server), you will likely need to install and run a\nPostgreSQL (11+) database locally. For more advanced development involving\nKafka data pipelines or the metadata search index, there is a docker compose\nfile in `./extra/docker/` to run these services locally.\n\nContributors are asked run all of the following and correct any (new) lint\nwarnings before submitting patches:\n\n    make fmt\n    make lint\n    make test\n\nIt is very appreciated if new features and code comes with full test coverage,\nbut maintainers can review code and help if this is difficult.\n\n\n## Contributing\n\nSoftware, documentation, new bots, and other contributions to this repository\nare welcome! When considering a non-trivial contribution, it can save review\ntime and duplicated work to jump in the chatroom or post an issue with your\nidea and intentions before starting work. Large changes and features usually\nhave a design proposal drafted and merged first (see `./proposals/`).\n\nThere is a public chatroom where you can discuss and ask questions at\n[gitter.im/internetarchive/fatcat](https://gitter.im/internetarchive/fatcat).\n\nContributors in this project are asked to abide by our\n[Code of Conduct](https://guide.fatcat.wiki/code_of_conduct.html).\n\nSee the `LICENSE` file for detailed permissions and licensing of both python\nand rust code. In short, the auto-generated client libraries are permissively\nreleased, while the API server and web interface are strong copyleft (AGPLv3).\n\nFor software developers, the \"help wanted\" tag in Github Issues is a way to\ndiscover bugs and tasks that external folks could contribute to.\n\n\n## Thanks!\n\nThe \"cat with coffee\" photo at the top of this README is by \u003ca\nhref=\"http://www.kampschroer.com/photography.html\"\u003eQuinn Kampschroer\u003c/a\u003e,\nreleased under a CC-0 license (public domain).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternetarchive%2Ffatcat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finternetarchive%2Ffatcat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternetarchive%2Ffatcat/lists"}