Skip to content

Commit 0c41895

Browse files
committed
Update prolly metadata after commit: Clear all data
1 parent a0b88cd commit 0c41895

55 files changed

Lines changed: 15129 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5+
6+
version: 2
7+
updates:
8+
- package-ecosystem: "cargo"
9+
directory: "/" # Location of package manifests
10+
schedule:
11+
interval: "daily"

.github/workflows/ci.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
types: [ready_for_review]
6+
push:
7+
branches:
8+
- main
9+
10+
jobs:
11+
test:
12+
strategy:
13+
matrix:
14+
feature_flags: ["no-default-features", "all-features"]
15+
runs-on: ubuntu-latest
16+
steps:
17+
18+
- uses: actions/checkout@v2
19+
20+
- name: fmt
21+
run: cargo fmt --all -- --check
22+
23+
- name: build
24+
run: cargo build --verbose
25+
26+
- name: test
27+
run: cargo test --verbose
28+
29+
- name: build benchmarks
30+
run: cargo test --benches --no-run --verbose
31+
32+
- name: clippy
33+
run: cargo clippy
34+
35+
- name: docs
36+
run: cargo doc --document-private-items --no-deps

.github/workflows/python.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Build Python Package
2+
3+
on:
4+
pull_request:
5+
types: [ready_for_review]
6+
push:
7+
branches:
8+
- main
9+
10+
jobs:
11+
build-wheels:
12+
name: Build wheels on ${{ matrix.os }}
13+
runs-on: ${{ matrix.os }}
14+
strategy:
15+
matrix:
16+
include:
17+
# Linux
18+
- os: ubuntu-latest
19+
target: x86_64
20+
manylinux: auto
21+
# - os: ubuntu-latest
22+
# target: aarch64
23+
# manylinux: auto
24+
# # Windows
25+
# - os: windows-latest
26+
# target: x64
27+
# manylinux: false
28+
# - os: windows-latest
29+
# target: x86
30+
# manylinux: false
31+
# # macOS
32+
# - os: macos-latest
33+
# target: x86_64
34+
# manylinux: false
35+
# - os: macos-14
36+
# target: aarch64
37+
# manylinux: false
38+
39+
steps:
40+
- uses: actions/checkout@v4
41+
42+
- name: Setup Python
43+
uses: actions/setup-python@v5
44+
with:
45+
python-version: '3.11'
46+
47+
- name: Build wheels (CPython only)
48+
uses: PyO3/maturin-action@v1
49+
env:
50+
# Ensure PyO3 doesn't try to use PyPy
51+
PYO3_CROSS_PYTHON_VERSION: "3.11"
52+
with:
53+
target: ${{ matrix.target }}
54+
args: --release --out dist --features python --interpreter python3.11
55+
sccache: 'true'
56+
manylinux: ${{ matrix.manylinux }}
57+
rust-toolchain: stable
58+
59+
- name: Upload wheels
60+
uses: actions/upload-artifact@v4
61+
with:
62+
name: wheels-${{ matrix.os }}-${{ matrix.target }}
63+
path: dist

.gitignore

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Rust specific
2+
debug/
3+
target/
4+
/target/
5+
**/*.rs.bk
6+
7+
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
8+
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
9+
Cargo.lock
10+
11+
# Generated by Cargo
12+
.cargo/
13+
14+
# Binaries
15+
*.exe
16+
*.exe~
17+
*.dll
18+
*.so
19+
*.dylib
20+
21+
# These are backup files generated by rustfmt
22+
**/*.rs.bk
23+
24+
# MSVC Windows builds of rustc generate these, which store debugging information
25+
*.pdb
26+
27+
# Debug files
28+
*.log
29+
30+
# Temporary files
31+
*.tmp
32+
*.swp
33+
34+
# Editor specific
35+
# JetBrains (IntelliJ, CLion, etc.)
36+
.idea/
37+
*.iml
38+
39+
# VS Code
40+
.vscode/
41+
42+
# MacOS
43+
.DS_Store
44+
45+
# Windows
46+
Thumbs.db
47+
48+
# Python specific
49+
__pycache__/
50+
*.py[cod]
51+
*$py.class
52+
*.so
53+
*.egg
54+
*.egg-info/
55+
dist/
56+
build/
57+
.Python
58+
.venv/
59+
.env
60+
.pytest_cache/
61+
.coverage
62+
.mypy_cache/
63+
.tox/
64+
*.whl

Cargo.toml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
[package]
2+
name = "prollytree"
3+
description = "A prolly (probabilistic) tree for efficient storage, retrieval, and modification of ordered data."
4+
authors = ["Feng Zhang <f.feng.zhang@gmail.com>"]
5+
version = "0.2.1-beta"
6+
edition = "2021"
7+
8+
license = "Apache-2.0"
9+
readme = "README.md"
10+
documentation = "https://docs.rs/prollytree"
11+
repository = "https://github.com/zhangfengcdt/prollytree.git"
12+
keywords = ["prolly", "tree", "probabilistic", "hash"]
13+
categories = ["data-structures", "cryptography"]
14+
15+
[lib]
16+
name = "prollytree"
17+
crate-type = ["cdylib", "rlib"]
18+
19+
[dependencies]
20+
base64 = { version = "0.22.0", optional = true }
21+
sha2 = "0.10"
22+
tracing = { version = "0.1.37", optional = true }
23+
rand = "0.9.0"
24+
serde = { version = "1.0", features = ["derive"] }
25+
bincode = "1.3.3"
26+
thiserror = "2.0"
27+
twox-hash = "2.0"
28+
serde_json = "1.0.117"
29+
arrow = "54.2.1"
30+
schemars = "0.8"
31+
parquet = { version = "54.0.0", features = ["arrow"] }
32+
gix = { version = "0.66", features = ["blocking-network-client"], optional = true }
33+
clap = { version = "4.0", features = ["derive"], optional = true }
34+
lru = { version = "0.16", optional = true }
35+
hex = { version = "0.4", optional = true }
36+
chrono = { version = "0.4", optional = true }
37+
gluesql-core = { version = "0.15", optional = true }
38+
async-trait = { version = "0.1", optional = true }
39+
uuid = { version = "1.0", optional = true }
40+
futures = { version = "0.3", optional = true }
41+
tokio = { version = "1.0", features = ["rt-multi-thread", "macros"], optional = true }
42+
pyo3 = { version = "0.22", features = ["extension-module"], optional = true }
43+
44+
[dev-dependencies]
45+
bytes = "1.10.1"
46+
tracing = "0.1.37"
47+
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
48+
criterion = "0.5"
49+
tempfile = "3.0"
50+
tokio = { version = "1.0", features = ["full"] }
51+
52+
[features]
53+
default = ["digest_base64", "prolly_balance_max_nodes", "git", "sql"]
54+
tracing = ["dep:tracing"]
55+
digest_base64 = ["dep:base64"]
56+
prolly_balance_max_nodes = []
57+
prolly_balance_rolling_hash = []
58+
git = ["dep:gix", "dep:clap", "dep:lru", "dep:hex", "dep:chrono"]
59+
sql = ["dep:gluesql-core", "dep:async-trait", "dep:uuid", "dep:futures", "dep:tokio"]
60+
python = ["dep:pyo3"]
61+
62+
[[bin]]
63+
name = "git-prolly"
64+
path = "src/bin/git-prolly.rs"
65+
required-features = ["git", "sql"]
66+
67+
[[bench]]
68+
name = "prollytree_bench"
69+
harness = false
70+
71+
[[bench]]
72+
name = "sql_bench"
73+
harness = false
74+
required-features = ["sql"]
75+
76+
[[bench]]
77+
name = "git_prolly_bench"
78+
harness = false
79+
required-features = ["git", "sql"]

0 commit comments

Comments
 (0)