{"id":20236014,"url":"https://github.com/combust/pachyderm-client","last_synced_at":"2026-01-21T15:33:09.554Z","repository":{"id":74304053,"uuid":"80858131","full_name":"combust/pachyderm-client","owner":"combust","description":"Pachyderm gRPC client with Scala niceties","archived":false,"fork":false,"pushed_at":"2017-02-07T18:54:47.000Z","size":30,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-14T03:15:25.923Z","etag":null,"topics":["akka","grpc","pachyderm","scala"],"latest_commit_sha":null,"homepage":null,"language":"Scala","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/combust.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":"2017-02-03T18:40:23.000Z","updated_at":"2024-11-28T16:33:10.000Z","dependencies_parsed_at":"2023-04-17T01:48:32.149Z","dependency_job_id":null,"html_url":"https://github.com/combust/pachyderm-client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/combust%2Fpachyderm-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/combust%2Fpachyderm-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/combust%2Fpachyderm-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/combust%2Fpachyderm-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/combust","download_url":"https://codeload.github.com/combust/pachyderm-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247774616,"owners_count":20993771,"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":["akka","grpc","pachyderm","scala"],"created_at":"2024-11-14T08:18:43.265Z","updated_at":"2026-01-21T15:33:09.548Z","avatar_url":"https://github.com/combust.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pachyderm Client for Scala\n\nThis is a Scala client for [Pachyderm](https://www.pachyderm.io/).\nIt uses a modified version of the [pfs.proto](https://github.com/pachyderm/pachyderm/blob/master/src/client/pfs/pfs.proto) file\nto automatically generate an asyncrhonous Future-based gRPC client.\n\nCurrently the client is pretty barebones to the Protobuf-based client,\nbut we will be adding some nice abstractions and utilities to make\nthings like committing multiple files asynchronously easy. In addition,\nwe will create an Akka-based version of the client that will allow for\ntruly asynchronous IO and easy integration with Akka-stream based\napplications.\n\n## Installation\n\n`pachyderm-client` is cross-compiled for Scala 2.11 and 2.12 and is\navailable on Maven Central for release versions and OSS Sonatype\nSnapshots for snapshot versions.\n\n### Snapshot Versions\n\n```sbt\n// Add OSS Sonatype Snapshots repository\nresolvers += \"Sonatype OSS Snapshots\" at \"https://oss.sonatype.org/content/repositories/snapshots\"\n\n// Add pachyderm-client dependency\nlibraryDependencies ++= \"ml.combust.pachyderm\" %% \"pachyderm-client\" % \"0.1.0-SNAPSHOT\"\n```\n\n### Release Versions\n\nReleases are hosted on Maven Central, which is a default SBT resolver.\n\n```sbt\n// Add pachyderm-client dependency\nlibraryDependencies ++= \"ml.combust.pachyderm\" %% \"pachyderm-client\" % \"0.1.0\"\n```\n\n## Running Tests\n\nTo test locally, follow the [instruction](http://pachyderm.readthedocs.io/en/stable/getting_started/local_installation.html) for getting a local Pachyderm\ncluster running. After you have Pachyderm running locally, make sure you\nhave port forwarding enabled. The tests will use a shell to determine\nthe host IP for Pachyderm and uses a hardcoded port of 30650.\n\n```bash\nsbt pachyderm-client/test\n```\n\n## Basic Usage\n\nMake sure you can run the tests using the instructions in the previous\nsection.\n\n\n```bash\npachctl port-forward \u0026\n```\n\nBy default Pachyderm runs on port 30650 and the IP address of the\nPachyderm daemon can be determined using:\n\n```bash\nminikube ip\n```\n\nOnce you have the port and host IP for the Pachyderm daemon, we can\nconnect to it using the Scala client.\n\n```scala\nimport sys.process.Process\nimport ml.combust.pachyderm.client.Client\n\n// Use a shell process to get the host IP for Pachyderm\nval hostIp = Process(\"minikube ip\").lineStream.head\n\n// Use default port to connect\nval port = 30650\n\n// Connect our gRPC client to Pachyderm\nval client = Client(hostIp, port)\n\n// Create a repo\nclient.createRepo(\"my_test_repo\")\n\n// List all repos\nclient.listRepo()\n\n// Inspect a repo\nclient.inspectRepo(\"my_test_repo\")\n\n// Delete a repo\nclient.deleteRepo(\"my_test_repo\")\n```\n\n### Working with Commits\n\nTODO: Still working on nice utilities for simplifying commits\n\n### Block API\n\nTODO: Still need to make the Block API integration\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcombust%2Fpachyderm-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcombust%2Fpachyderm-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcombust%2Fpachyderm-client/lists"}