{"id":21839252,"url":"https://github.com/unitycatalog/unitycatalog-rs","last_synced_at":"2025-07-31T23:34:46.093Z","repository":{"id":244861725,"uuid":"816345962","full_name":"unitycatalog/unitycatalog-rs","owner":"unitycatalog","description":"Open, Multi-modal Catalog for Data \u0026 AI, written in Rust ","archived":false,"fork":false,"pushed_at":"2024-09-30T11:11:41.000Z","size":36,"stargazers_count":79,"open_issues_count":4,"forks_count":14,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-07T03:44:28.810Z","etag":null,"topics":["rust","unity-catalog","unitycatalog"],"latest_commit_sha":null,"homepage":"https://unitycatalog.io/","language":"Rust","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/unitycatalog.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2024-06-17T14:55:36.000Z","updated_at":"2025-04-27T06:42:17.000Z","dependencies_parsed_at":"2024-06-17T23:42:57.099Z","dependency_job_id":"61e25063-8fca-43c7-a1c5-e29e7bbfc184","html_url":"https://github.com/unitycatalog/unitycatalog-rs","commit_stats":null,"previous_names":["abrassel/unitycatalog-rs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unitycatalog%2Funitycatalog-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unitycatalog%2Funitycatalog-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unitycatalog%2Funitycatalog-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unitycatalog%2Funitycatalog-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unitycatalog","download_url":"https://codeload.github.com/unitycatalog/unitycatalog-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252810273,"owners_count":21807759,"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":["rust","unity-catalog","unitycatalog"],"created_at":"2024-11-27T21:16:50.439Z","updated_at":"2025-05-07T03:44:49.016Z","avatar_url":"https://github.com/unitycatalog.png","language":"Rust","readme":"# unitycatalog-rs\n\n[![CI](https://github.com/unitycatalog/unitycatalog-rs/workflows/CI/badge.svg)](https://github.com/unitycatalog/unitycatalog-rs/actions) ![crates.io](https://img.shields.io/crates/v/unitycatalog.svg?label=unitycatalog) ![crates.io](https://img.shields.io/crates/v/unitycatalog-client.svg?label=unitycatalog-client) ![crates.io](https://img.shields.io/crates/v/unitycatalog-sys.svg?label=unitycatalog-sys)\n\n**Unity Catalog Rust (UC-R)**\n\nA native Rust implementation of the [Unity Catalog](https://github.com/unitycatalog/unitycatalog): an Open and Multimodal Catalog for Data \u0026 AI. \n\n## Prerequisites\n\n- Install Rust, e.g. as described [here](https://doc.rust-lang.org/cargo/getting-started/installation.html)\n\n## [WIP] Quick Start\n\nUse two terminal windows: one to run the Unity Catalog Rust server (UC-R) another to explore the content of the UC-R server using varios client tools.\n\n### Run the server\n\nIn the first terminal window, start the UC server (from the repository root directory)\n\n```\ncargo run\n```\n\n### [TBD] Query with DuckDB\n\n- [Install](https://duckdb.org/docs/installation/) DuckDB\n- Start DuckDB (run `duckdb` in the terminal)\n- Run the following commands in the DuckDB shell to install the required extensions\n```\ninstall uc_catalog from core_nightly;\nload uc_catalog;\ninstall delta;\nload delta;\n```\n\n- Attach the unity catalog to DuckDB\n```\nATTACH 'unity' AS unity (TYPE UC_CATALOG);\n```\n\n- Run the queries, for example\n```\nSHOW ALL TABLES;\nSELECT * from unity.default.numbers;\n```\n\n## APIs and Compatibility\n\n- Open API specification: The Unity Catalog Rest API is documented [here](https://github.com/unitycatalog/unitycatalog/tree/main/api).\n- Compatibility and stability: The APIs are currently evolving and should not be assumed to be stable.\n\n## Compiling and Testing\n\n```\ncargo test\n```\n\n## Why Rust?\n\nRust was chosen as a language for the alternative implementation for a few reasons:\n\n- **Performance**: Rust compiles to native bytecode, enabling it to be used in performance-critical and constrained environments.\n- **FFI**: As Rust uses the C ABI, bindings can be exposed to any language, like C, Go, etc.\n- **Python \u0026 Rust**: Python and Rust are a strong pairing, especially in the AI ecosystem ([tokenizers](https://github.com/huggingface/tokenizers), [pydantic](https://github.com/pydantic/pydantic-core), etc).\n- **Ecosystem**: Rust has a rich ecosystem of libraries, especially related to big data processing ([delta-rs](https://github.com/delta-io/delta-rs), [datafusion](https://github.com/apache/datafusion), etc).\n- **Safety**: Rust's strong type system and ownership model make it difficult to write code that is unsafe or has undefined behavior. When dealing with data assets, especially when it comes to access control, this helps us ensure that we are not introducing security vulnerabilities.\n- **We want to write it!**: Most importantly, we like writing Rust!\n\n## Getting Involved\n\nWe encourage you to reach out and share your feedback or ideas by [raising an issue](issues/new). \n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) if you are looking to contribute.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funitycatalog%2Funitycatalog-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funitycatalog%2Funitycatalog-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funitycatalog%2Funitycatalog-rs/lists"}