Skip to content

Instantly share code, notes, and snippets.

[package]
name = "cete_node"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
actix-web = "4"
aws-config = "*"
aws-sdk-codecommit = "*"
[package]
name = "delta_fake"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0.86"
dashmap = "5.5.3"
@mooreniemi
mooreniemi / Cargo.toml
Created May 19, 2024 19:31
`SharedFile` using `unsafe`
[package]
name = "delta_fake"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0.86"
fd-lock = "4.0.2"
[package]
name = "poodah"
version = "0.1.0"
edition = "2021"
[[bench]]
name = "ray_in_tok"
harness = false
[dependencies]
@mooreniemi
mooreniemi / Cargo.toml
Created May 7, 2024 14:18
This is a minimal example of reading a delta table from S3 with Rust. From [this discussion](https://delta-users.slack.com/archives/C013LCAEB98/p1714949120391979).
[package]
name = "read-table-example"
version = "0.1.0"
edition = "2021"
# note: I did not double-check this and your dependencies might slightly vary (I cut some of mine off)
[dependencies]
deltalake = { version = "*", features = ["s3"] }
tokio = { version = "1", features = ["full"] }
quick-xml = { version = "0.23.0-alpha3" }
@mooreniemi
mooreniemi / Cargo.toml
Last active May 6, 2024 04:46
streaming parquet read from s3
[package]
name = "stream-pq"
version = "0.1.0"
edition = "2021"
[dependencies]
deltalake = { version = "*", features = ["s3"] }
tokio = { version = "1", features = ["full"] }
quick-xml = { version = "0.23.0-alpha3" }
aws-config = { version = "*", features = ["rustls"] }
use arrow::array::ArrayRef;
use arrow::record_batch::RecordBatch;
use parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder;
use parquet::arrow::ArrowWriter;
use std::env;
use std::fs::File;
use std::path::Path;
use std::time::Instant;
fn main() -> Result<(), Box<dyn std::error::Error>> {
[package]
name = "poodah"
version = "0.1.0"
edition = "2021"
[dependencies]
arrow = "25.0.0"
parquet = "25.0.0"
rusoto_core = "0.48.0"
rusoto_mock = "0.48.0"
@mooreniemi
mooreniemi / Cargo.toml
Created April 29, 2024 03:10
local (non-prod) shard assignment via etcd
[package]
name = "cete_node"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
actix-web = "4"
aws-config = "*"
aws-sdk-codecommit = "*"
@mooreniemi
mooreniemi / increment_counter.rs
Created April 29, 2024 01:51
a basic cas op for etcd
/// Increments a counter stored in a JSON object within etcd under the specified key.
/// Assumes the JSON structure is {"count": int}. Will try 5 times before failing.
async fn increment_counter(
etcd: &AsyncMutex<Client>,
key: &str,
) -> Result<(), Box<dyn std::error::Error>> {
let key = key.to_string();
let mut client = etcd.lock().await;
// FIXME: actually we don't want to retry - we want to bail out and try to find another assignment