{"id":15066723,"url":"https://github.com/tzaeschke/zoodb","last_synced_at":"2026-03-11T03:31:37.572Z","repository":{"id":2886953,"uuid":"3893984","full_name":"tzaeschke/zoodb","owner":"tzaeschke","description":"ZooDB Object Database","archived":false,"fork":false,"pushed_at":"2023-03-23T10:07:38.000Z","size":14147,"stargazers_count":58,"open_issues_count":47,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-08-09T12:46:29.722Z","etag":null,"topics":["database","db4o","java","jdo","jpa","jta","object-database"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tzaeschke.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","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}},"created_at":"2012-04-01T17:08:29.000Z","updated_at":"2025-05-23T02:31:41.000Z","dependencies_parsed_at":"2022-07-31T14:09:38.192Z","dependency_job_id":"ff68ef9d-41ec-458b-bc6d-51d251ed43ec","html_url":"https://github.com/tzaeschke/zoodb","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/tzaeschke/zoodb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tzaeschke%2Fzoodb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tzaeschke%2Fzoodb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tzaeschke%2Fzoodb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tzaeschke%2Fzoodb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tzaeschke","download_url":"https://codeload.github.com/tzaeschke/zoodb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tzaeschke%2Fzoodb/sbom","scorecard":{"id":905741,"data":{"date":"2025-08-11","repo":{"name":"github.com/tzaeschke/zoodb","commit":"311c96bc6f9413762c54b4638c85a60558707aab"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact zoodb-0.5.0 not signed: https://api.github.com/repos/tzaeschke/zoodb/releases/6764049","Warn: release artifact zoodb-0.5.0 does not have provenance: https://api.github.com/repos/tzaeschke/zoodb/releases/6764049"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-24T17:17:05.626Z","repository_id":2886953,"created_at":"2025-08-24T17:17:05.626Z","updated_at":"2025-08-24T17:17:05.626Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30369379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"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":["database","db4o","java","jdo","jpa","jta","object-database"],"created_at":"2024-09-25T01:11:17.352Z","updated_at":"2026-03-11T03:31:37.553Z","avatar_url":"https://github.com/tzaeschke.png","language":"Java","funding_links":[],"categories":["数据库"],"sub_categories":[],"readme":"\nZooDB\n=====\n\n\u003ca href=\"http://www.zoodb.org\"\u003e\n\u003cimg src=\"https://github.com/tzaeschke/zoodb/blob/master/doc/images/logo_510412_web.png\" alt=\"ZooDB logo\" align=\"right\" /\u003e\n\u003c/a\u003e\n\n[![Build Status](https://travis-ci.org/tzaeschke/zoodb.svg?branch=master)](https://travis-ci.org/tzaeschke/zoodb)\n[![codecov](https://codecov.io/gh/tzaeschke/zoodb/branch/master/graph/badge.svg)](https://codecov.io/gh/tzaeschke/zoodb)\n\n\nZooDB is an object oriented database based on the JDO 3.0 standard.\nIt is written by Tilmann Zäschke since 2008, between 2011 and 2015 with friendly support by the GlobIS Group at ETH Zurich.\nZooDB is currently licensed under APL 2.0 (Apache License, Version 2.0), see file COPYING.\n\nZooDB is also available via maven:\n\n```\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.zoodb\u003c/groupId\u003e\n    \u003cartifactId\u003ezoodb\u003c/artifactId\u003e\n    \u003cversion\u003e0.6.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nThere are two ZooDB plug-in projects:\n * [Server B-Tree with prefix sharing: A faster server index](https://github.com/tzaeschke/zoodb-server-btree)\n * [ZooDB profiler: A profiling tool for database usage](https://github.com/tzaeschke/zoodb-profiler)\n\n\nNews\n====\n\n2020-12-05 - Release of ZooDB 0.6.1:\n * Fixed issue #131: Query on auto-created (and uncommitted) schema causes exception.\n * Updated dependencies for slf4j and junit\n * Improved ZooCheckDb tool to print out schema and index information\n * Fixed issue when executing a single parametrized query instance concurrently.\n\n2020-05-03 - Release of ZooDB 0.6.0:\n * **License changed to Apache License, Version 2.0**\n * New query compiler V4 with support for \n   - Declared Variables\n   - Math operations in queries, such as `+`, `-`, `*`, `/`, `%`, ...\n   - Right/left hand sides of `\u003c`, `\u003c=`, `\u003e`, `\u003e=`, `==` are fully interchangeable\n   - Queries constrained by `contains()`\n   - ZooDB will use the old V3 parser where possible because execution is a bit faster.\n     In rare cases, (left/right sides changed), ZooDB may wrongly detect a V3 query\n     where the V4 parser would be required, please fix the queries to work with V3 in this case.\n   - V4 is still work in progress.\n * Fixed Issue #103: Reading from ByteBuffers in parallel requires synchronization.\n * Fixed Issue #114: ZooDB may choose wrong root page when opening database.\n * Fixed Issue #115: Extend ZooCheckDb tool to show file format versions, even when not compatible.\n * Fixed missing cleanup for empty transactions. Tighter control over open iterators in FSM.\n * Major code cleanup\n\n2019-01-03 - Release of ZooDB 0.5.2. Bug fixes:\n * Fixed Issues #109 and #110 : Inconsistency after removing attribute index..\n * Fixed issue #54 : schema auto-creation fails to roll back properly when commit fails.\n\n2018-09-17 - Release of ZooDB 0.5.1. Bug fixes:\n * Issue #111: Support for serialization of persistent objects outside ZooDB\n * Issue #112: Proper handling of reattaching detached objects\n\n2017-07-18 - Release of ZooDB 0.5.0. New features:\n * Java 8\n * JDO 3.1\n * Migrated logging to slf4j\n * Various bugs fixed\n\n\nBug Bounty #2\n=============\nStarting March 3rd 2017, until May 31st 2017, there is a bug bounty for severe bugs concerning indexing and database consistency. Five bugs were accepted for the bug bounty.\n\n\nBug Bounty\n==========\nThe first bug hunt started June 11 2016 and ended June 30 2016. The hunt was for severe bugs concerning indexing and database consistency. No bugs were reported.\n\n\nCurrent Status\n==============\nUnder development, but already in use by some university projects.\n\n\nCurrent Features\n================\n- Works as normal database or as in-memory database.\n- Fast (4x faster than db4o using db4o's PolePosition benchmark suite).\n- Reasonably scalable, has been used successfully with 60,000,000+ objects in a 30+ GB database.\n- Maximum object count: 2^63.\n- Maximum database size depends on (configurable) cluster size: 2^31 * CLUSTER_SIZE. With default cluster size: 2^31 * 4KB = 8TB.\n- Crash-recovery/immunity (dual flush, no log-file required).\n- Standard stuff: commit/rollback, query, indexing, lazy-loading, transitive persistence \u0026 updates (persistence by reachability), automatic schema definition, embedded object support (second class objects).\n- Queries support standard operators, indexing, path queries, parameters, aggregation (avg, max, min), projection, uniqueness, ORDER BY, setting result classes (partial), methods (partial).\n- Multi-user/-session capability (optimistic TX), THIS IS NOT WELL TESTED!\n- Thread-safe.\n- XML export/import (currently only binary attributes).\n- Some examples are available in the 'examples' folder.\n- Open source (GPLv3).\n\nNote that some features may be available in the latest snapshot only.\n\nCurrent Limitations\n===================\n- Schema evolution is ~90% complete (updating OIDs is not properly supported, no low level queries).\n  --\u003e Queries don't work with lazy evolution.\n- No backup (except copying the DB file).\n- Single process usage only (No stand-alone server).\n- JDO only partially supported:\n  - Some query features not supported: group by, range, variables, imports, setting result classes (partial).\n  - No XML config or Annotations; configuration only via Java API.\n  - Manual enhancement of classes required (insert activateRead()/activateWrite() \u0026 extend provided super-class).\n- Little documentation (some example code), but follows JDO 3.0 spec.\n\n\nDependencies\n============\n* [JDO 3.1](https://db.apache.org/jdo/) (Java Data Objects):\n* [JTA](http://java.sun.com/products/jta/) (Java Transaction API):\n* [JUnit](http://www.junit.org/) (currently use 4.12, but should work with newer and older versions as well):\n* [Java 8](https://java.com/de/download/)\n* [SLF4J](https://www.slf4j.org/) (Logging API)\n\nContributions\n=============\nPlease [sign-off](https://github.com/tzaeschke/zoodb/blob/master/SubmittingPatches.md) all patches before creating a pull request.\n\nContact\n=======\nzoodb(AT)gmx(DOT)de\n\n![ZooDB](https://github.com/tzaeschke/zoodb/raw/master/doc/images/logo_510412_web.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftzaeschke%2Fzoodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftzaeschke%2Fzoodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftzaeschke%2Fzoodb/lists"}