Skip to content

Commit 36e128c

Browse files
authored
Add in-memory catalog implementation (#475)
* feat: Add in-memory catalog * Make clippy happy * Make cargo sort happy * Fix README links * Configurable file_io * Avoid nightly features * Remove TempFile * Use futures::lock::Mutex instead * Minor clean up * Make root configurable in FS FileIO and remove default_table_root_location from Catalog * Revert "Make root configurable in FS FileIO and remove default_table_root_location from Catalog" This reverts commit 807dd4c. * Remove default_table_root_location from Catalog and explicitly configure a location for tables in unit tests * lowercase catalog * Use default instead of new * Change references to memory
1 parent c9ffbce commit 36e128c

File tree

6 files changed

+1857
-1
lines changed

6 files changed

+1857
-1
lines changed

crates/catalog/inmemory/Cargo.toml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
[package]
19+
name = "iceberg-catalog-memory"
20+
version = { workspace = true }
21+
edition = { workspace = true }
22+
homepage = { workspace = true }
23+
rust-version = { workspace = true }
24+
25+
categories = ["database"]
26+
description = "Apache Iceberg Rust Memory Catalog API"
27+
repository = { workspace = true }
28+
license = { workspace = true }
29+
keywords = ["iceberg", "memory", "catalog"]
30+
31+
[dependencies]
32+
async-trait = { workspace = true }
33+
futures = { workspace = true }
34+
iceberg = { workspace = true }
35+
itertools = { workspace = true }
36+
serde_json = { workspace = true }
37+
uuid = { workspace = true, features = ["v4"] }
38+
39+
[dev-dependencies]
40+
tempfile = { workspace = true }
41+
tokio = { workspace = true }

crates/catalog/inmemory/README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<!--
2+
~ Licensed to the Apache Software Foundation (ASF) under one
3+
~ or more contributor license agreements. See the NOTICE file
4+
~ distributed with this work for additional information
5+
~ regarding copyright ownership. The ASF licenses this file
6+
~ to you under the Apache License, Version 2.0 (the
7+
~ "License"); you may not use this file except in compliance
8+
~ with the License. You may obtain a copy of the License at
9+
~
10+
~ http://www.apache.org/licenses/LICENSE-2.0
11+
~
12+
~ Unless required by applicable law or agreed to in writing,
13+
~ software distributed under the License is distributed on an
14+
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
~ KIND, either express or implied. See the License for the
16+
~ specific language governing permissions and limitations
17+
~ under the License.
18+
-->
19+
20+
# Apache Iceberg Memory Catalog Official Native Rust Implementation
21+
22+
[![crates.io](https://img.shields.io/crates/v/iceberg-catalog-memory.svg)](https://crates.io/crates/iceberg-catalog-memory)
23+
[![docs.rs](https://img.shields.io/docsrs/iceberg-catalog-memory.svg)](https://docs.rs/iceberg/latest/iceberg-catalog-memory/)
24+
25+
This crate contains the official Native Rust implementation of Apache Iceberg Memory Catalog.
26+
27+
See the [API documentation](https://docs.rs/iceberg-catalog-memory/latest) for examples and the full API.

0 commit comments

Comments
 (0)