{"id":22302604,"url":"https://github.com/dataoneorg/speed-bagit","last_synced_at":"2026-02-12T02:09:30.680Z","repository":{"id":40493615,"uuid":"308476748","full_name":"DataONEorg/speed-bagit","owner":"DataONEorg","description":"A streaming implementation of the BagIt specification in Java","archived":false,"fork":false,"pushed_at":"2024-08-01T23:41:23.000Z","size":95,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-09-02T22:39:09.117Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/DataONEorg.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":"2020-10-29T23:45:22.000Z","updated_at":"2023-10-19T17:32:38.000Z","dependencies_parsed_at":"2024-08-02T01:06:31.880Z","dependency_job_id":"f68958c4-683e-48b6-9920-3149da72398f","html_url":"https://github.com/DataONEorg/speed-bagit","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/DataONEorg/speed-bagit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fspeed-bagit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fspeed-bagit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fspeed-bagit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fspeed-bagit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataONEorg","download_url":"https://codeload.github.com/DataONEorg/speed-bagit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fspeed-bagit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29354708,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-12-03T18:40:00.237Z","updated_at":"2026-02-12T02:09:30.664Z","avatar_url":"https://github.com/DataONEorg.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SpeedBagIt\n[![Build Status](https://travis-ci.com/DataONEorg/speed-bagit.svg?branch=main)](https://travis-ci.com/DataONEorg/speed-bagit)\n\n- **Authors**: Thomas Thelen ([NCEAS](http://www.nceas.ucsb.edu))\n- **License**: [Apache 2](http://opensource.org/licenses/Apache-2.0)\n- [**Submit Bugs and feature requests**](https://github.com/DataONEorg/speed-bagit/issues)\n\nA fast, minimal BagIt library that serves bags without touching the filesystem. Ever.\nThis library was designed for servers serving zip files that conform \nto the BagIt specification. This differs from other BagIt libraries in that it doesn't \ncreate a temporary zip file of the bag on disk. Instead, it performs checksumming and size calculations \non the fly _as the bag is being served_. This avoids unnecessarily copying data files to disk which \nis a common bottleneck for delivering content.\n\n### Installing\n\n#### Maven\nTo use SpeedBagIt in your project, first add the DataONE maven repository to your project's `pom.xml` file.\n```\n\u003crepository\u003e\n    \u003cid\u003edataone.org\u003c/id\u003e\n    \u003curl\u003ehttp://maven.dataone.org/\u003c/url\u003e\n    \u003creleases\u003e\n        \u003cenabled\u003etrue\u003c/enabled\u003e\n    \u003c/releases\u003e\n    \u003csnapshots\u003e\n        \u003cenabled\u003etrue\u003c/enabled\u003e\n    \u003c/snapshots\u003e\n\u003c/repository\u003e\n```\nThen, add the SpeedBagIt dependency to the `pom.xml` file.\n```\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.dataone\u003c/groupId\u003e\n    \u003cartifactId\u003espeedbagit\u003c/artifactId\u003e\n    \u003cversion\u003e1.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n#### Compiling \u0026 Including the Jar\nSpeedBagIt can also be installed by cloning this repository and including the \nresulting jar file in your project.\n\n```\ngit clone https://github.com/DataONEorg/speed-bagit.git\ncd speed-bagit\nmvn install\n```\n\n### Quick Start\n\n\n#### Customizing bagit.txt\n\nStaying true to the BagIt specification, SpeedBagIt supports user defined key-value pairs in `bagit.txt`.  \n\nCreating the key-value pairs,\n```java\nMap\u003cString, String\u003e bagMetadata = new HashMap\u003c\u003e();\nbagMetadata.put(\"description\", \"This bag contains information about polar ice caps.\");\nbagMetadata.put(\"Contact-Email\", \"admin@dataone.org\");\nbagMetadata.put(\"External-Identifier\", doi:xx.1234);\n```\n\nPass the key-value pairs to the SpeedBagIt constructor.\n```java\ntry {\n    bag = new SpeedBagIt(1.0, \"MD-5\", bagMetadata);\n} catch (SpeedBagException | NoSuchAlgorithmException e) {\n    ...\n}\n```\n\n### Contributing\n\nThe takeaway for contributing is that feature branches are created off of the `develop` branch and pull requests should be made \ninto the `develop` branch rather than `master`. \n\nFor example, the workflow to create a pull request for a feature that adds support for fetch.txt follows\n\n- Create an issue describing your planned changes, or add a comment to an existing relevant issue\n- Checkout the `develop` branch, followed by `git checkout -b feature_support_fetch_file`\n- Commit your changes to the `feature_support_fetch_file` branch\n- Create a pull request from `feature_support_fetch_file` into `develop` and outline the code changes and how to test it\n- Once the code is reviewed, our team will merge in your changes and you're done!\n\n#### Code Style\nThis project conforms to the [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html) and new \ncontributions should follow suite.\n\n#### Unit Tests\nUnit tests should be created for all new classes and if possible, public methods. When writing unit tests, keep in mind that \nthe points are \n - After your contribution is merged, no one accidentally breaks it in the future\n - Early validation of potential bugs in your code\n - Examples for future developers and users to see how the classes and methods can be used\n\n## Acknowledgments\nWork on this package was supported by:\n\n- NSF DIBBS grant [#1541450](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1541450) to B. Ludaescher, V. Stodden, N. Gaffney, M. Turk, and K. Chard\n\nAdditional support was provided for working group collaboration by the National Center for Ecological Analysis and Synthesis, a Center funded by the University of California, Santa Barbara, and the State of California.\n\n[![nceas_footer](https://www.nceas.ucsb.edu/sites/default/files/2020-03/NCEAS-full%20logo-4C.png)](http://www.nceas.ucsb.edu)\n\n[![dataone_footer](https://www.dataone.org/sites/all/images/DataONE_LOGO.jpg)](http://dataone.org)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataoneorg%2Fspeed-bagit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdataoneorg%2Fspeed-bagit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataoneorg%2Fspeed-bagit/lists"}