{"id":28395178,"url":"https://github.com/databiosphere/java-pfb","last_synced_at":"2026-04-02T21:38:59.115Z","repository":{"id":180177202,"uuid":"656219544","full_name":"DataBiosphere/java-pfb","owner":"DataBiosphere","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-12T17:03:19.000Z","size":1229,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":14,"default_branch":"main","last_synced_at":"2026-01-12T22:23:01.644Z","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":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataBiosphere.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-06-20T13:47:04.000Z","updated_at":"2026-01-12T16:59:04.000Z","dependencies_parsed_at":"2023-09-25T23:59:42.738Z","dependency_job_id":"d860f390-dc0a-48be-860c-0e35774edbdf","html_url":"https://github.com/DataBiosphere/java-pfb","commit_stats":null,"previous_names":["databiosphere/java-pfb"],"tags_count":94,"template":false,"template_full_name":null,"purl":"pkg:github/DataBiosphere/java-pfb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataBiosphere%2Fjava-pfb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataBiosphere%2Fjava-pfb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataBiosphere%2Fjava-pfb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataBiosphere%2Fjava-pfb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataBiosphere","download_url":"https://codeload.github.com/DataBiosphere/java-pfb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataBiosphere%2Fjava-pfb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29015145,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T14:58:54.169Z","status":"ssl_error","status_checked_at":"2026-02-02T14:58:51.285Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2025-05-31T19:39:25.033Z","updated_at":"2026-02-02T16:09:13.726Z","avatar_url":"https://github.com/DataBiosphere.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Java-PFB\n\nA Java implementation of the [pyPFB](https://github.com/uc-cdis/pypfb) library that includes a CLI and a Java library. \n\nAs discussed in the docs provided by [pyPFB](https://github.com/uc-cdis/pypfb/blob/master/docs/index.md#introduction), PFB files are Avro files with a particular required schema. Given the specific [PFB schema](library/src/main/avro/pfbSchema.avdl), the [gradle avro plugin](https://github.com/davidmc24/gradle-avro-plugin) automatically generates class files on project build. Together with the [Avro Java library](https://avro.apache.org/docs/1.11.1/getting-started-java/), we are able to deserialize the PFB files and get the relevant peices of data: The schema, metadata, nodes, and table row data. \n\nTo learn more about PFBs, see [pfb.md](docs/pfb.md).\n\n## Getting Started\nSee the [library README](library/README.md) for more details on how to reference the library in your project.\n\nThe CLI is a wrapper around the library. See the [CLI README](cli/README.md) for more information.\n\n## Developer Information\n\n### Publishing\n\nSee [library](library/README.md) and [cli](cli/README.md) readmes for more details. \n\n### Running SourceClear locally\n\n[SourceClear](https://srcclr.github.io) is a static analysis tool that scans a project's Java\ndependencies for known vulnerabilities. If you get a build failure due a SourceClear error and want\nto debug the problem locally, you need to get the API token from vault before running the gradle\ntask.\n\n```shell\nexport SRCCLR_API_TOKEN=$(vault read -field=api_token secret/secops/ci/srcclr/gradle-agent)\n./gradlew srcclr\n```\n\nResults of the scan are uploaded to [Veracode](https://sca.analysiscenter.veracode.com/workspaces/jppForw/projects/768265/issues). You can request an account to view results from #dsp-infosec-champions. \n\n### Running SonarQube locally\n\n[SonarQube](https://www.sonarqube.org) is a static analysis code that scans code for a wide\nrange of issues, including maintainability and possible bugs. If you get a build failure due to\nSonarQube and want to debug the problem locally, you need to get the the sonar token from vault\nbefore runing the gradle task.\n\n```shell\nexport SONAR_TOKEN=$(vault read -field=sonar_token secret/secops/ci/sonarcloud/java-pfb)\n./gradlew sonar\n```\n\nUnlike SourceClear, running this task produces no output unless your project has errors. To always\ngenerate a report, run using `--info`:\n\n```shell\n./gradlew sonar --info\n```\n\nWe run the scans for two projects: [java-pfb](https://sonarcloud.io/project/overview?id=DataBiosphere_java-pfb) and [java-pfb-cli](https://sonarcloud.io/project/overview?id=DataBiosphere_java-pfb-cli). The results are uploaded to the sonarcloud dashboard. \n\n### Benchmarking\n\n[Java Microbenchmark Harness (JMH)](https://github.com/openjdk/jmh/tree/master) is a high-performance\nbenchmarking tool for individual Java methods. It is integrated into this project via the\n[JMH Gradle plugin](https://plugins.gradle.org/plugin/me.champeau.jmh).\n\nTo run the benchmarks manually:\n```shell\n./gradlew jmh\n```\nAfter benchmarks run, you can view the results at library/build/reports/jmh/human.txt.\n\nBenchmarks automatically run via GitHub Actions for all PRs and for all pushes to the `main` branch.\n\nYou can view `main` branch benchmarks at https://databiosphere.github.io/java-pfb/dev/bench/.\n\nFor PRs, navigate to your most recent commit and look for a comment on that commit.\n\nNote that benchmarks run via GitHub Actions are variable, since the runner machines are variable.\nDevelopers are encouraged to run benchmarks locally while developing to best assess the impact\nof their changes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabiosphere%2Fjava-pfb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatabiosphere%2Fjava-pfb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabiosphere%2Fjava-pfb/lists"}