3 releases
new 0.0.3 | Jan 29, 2025 |
---|---|
0.0.2 | Jan 28, 2025 |
0.0.1 | Jan 28, 2025 |
#216 in Database interfaces
237 downloads per month
20KB
88 lines
UnityCatalog Server (Work in Progress - Not ready yet. Currently act as placeholder for the name)
A Rust implementation of the UnityCatalog server component, providing metadata management and catalog services.
Overview
UnityCatalog Server is the backend component responsible for managing metadata, schemas, and catalog operations. This Rust implementation aims to provide a high-performance, memory-safe alternative to the original implementation.
Features
- Metadata management for data assets
- Schema validation and enforcement
- Catalog operations (create, read, update, delete)
- REST API endpoints for client interactions
- Integration with storage backends
Prerequisites
- Rust 1.75.0 or higher
- Cargo package manager
Installation
- Clone the repository:
git clone https://github.com/yourusername/unity-catalog-rust
cd unity-catalog-rust/server
- Build the project:
cargo build --release
Configuration
Create a config.toml
file in the config
directory:
[server]
host = "127.0.0.1"
port = 8080
[storage]
backend = "local" # or "s3", "azure", etc.
path = "/data/unity-catalog"
Running the Server
- Start the server in development mode:
cargo run
- For production deployment:
./target/release/unity-catalog-server
API Documentation
The server exposes the following REST endpoints:
GET /api/v1/catalogs
- List all catalogsPOST /api/v1/catalogs
- Create a new catalogGET /api/v1/catalogs/{id}
- Get catalog detailsPUT /api/v1/catalogs/{id}
- Update catalogDELETE /api/v1/catalogs/{id}
- Delete catalog
For detailed API documentation, see docs/api.md
.
Testing
Run the test suite:
cargo test
For integration tests:
cargo test --features integration-tests
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Acknowledgments
- Original UnityCatalog project contributors
- Rust community for excellent tools and libraries
- Contributors to this Rust implementation
Contact
For questions and support:
- Create an issue in the GitHub repository
- Email the maintainers at revanthshalonraj@gmail.com
Dependencies
~57MB
~1M SLoC