datafusion-contrib / datafusion-contrib/liquid-cache

Does not build on MacOS due to `io_uring`

Open
#488 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
452
Forks
51
Avg merge
3h 10m
Merged PRs (30d)
12

Description

Currently io_uring is not gated behind a feature. This is causing Mac OS builds to fail. I suspect that normally Liquid Cache is meant to run on Linux hardware, but, for a good developer experience it would be desirable to run on Mac OS. Also, not all linux kernel versions support io_uring. Running cargo tree shows that a good portion of the project relies on it without any form of feature gate or platform specification.

> cargo tree -i io-uring
io-uring v0.7.11
└── t4 v0.1.3
    ├── liquid-cache v0.1.12 (/Users/devan/Documents/OSS/liquid-cache/src/core)
    │   ├── liquid-cache-benchmarks v0.0.0 (/Users/devan/Documents/OSS/liquid-cache/benchmark)
    │   ├── liquid-cache-datafusion v0.1.12 (/Users/devan/Documents/OSS/liquid-cache/src/datafusion)
    │   │   ├── liquid-cache-benchmarks v0.0.0 (/Users/devan/Documents/OSS/liquid-cache/benchmark)
    │   │   ├── liquid-cache-datafusion-local v0.1.12 (/Users/devan/Documents/OSS/liquid-cache/src/datafusion-local)
    │   │   │   ├── examples v0.0.0 (/Users/devan/Documents/OSS/liquid-cache/examples)
    │   │   │   └── liquid-cache-benchmarks v0.0.0 (/Users/devan/Documents/OSS/liquid-cache/benchmark)
    │   │   └── liquid-cache-datafusion-server v0.1.12 (/Users/devan/Documents/OSS/liquid-cache/src/datafusion-server)
    │   │       ├── examples v0.0.0 (/Users/devan/Documents/OSS/liquid-cache/examples)
    │   │       └── liquid-cache-benchmarks v0.0.0 (/Users/devan/Documents/OSS/liquid-cache/benchmark)
    │   ├── liquid-cache-datafusion-local v0.1.12 (/Users/devan/Documents/OSS/liquid-cache/src/datafusion-local) (*)
    │   ├── liquid-cache-datafusion-server v0.1.12 (/Users/devan/Documents/OSS/liquid-cache/src/datafusion-server) (*)
    │   └── liquid-cache-fuzz v0.1.12 (/Users/devan/Documents/OSS/liquid-cache/fuzz)
    ├── liquid-cache-datafusion v0.1.12 (/Users/devan/Documents/OSS/liquid-cache/src/datafusion) (*)
    ├── liquid-cache-datafusion-local v0.1.12 (/Users/devan/Documents/OSS/liquid-cache/src/datafusion-local) (*)
    └── liquid-cache-datafusion-server v0.1.12 (/Users/devan/Documents/OSS/liquid-cache/src/datafusion-server) (*)

See: https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#platform-specific-dependencies & https://doc.rust-lang.org/cargo/reference/features.html

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Inspect the Cargo manifests for liquid-cache and the workspace crates listed by cargo tree -i io-uring, then review Cargo's platform-specific dependency and feature documentation. Run the dependency tree and a macOS build to identify every path pulling in io-uring. Done means the affected macOS builds succeed without compiling io-uring, while supported Linux builds retain the required functionality.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, rust
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.