Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recursive data map, Functor based decrypt method (for direct network calls) and also same pattern for getting root data_map #394

Merged
merged 31 commits into from
Nov 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
8974026
fix(encryption): fix CBC padding issues in chunk decryption
dirvine Oct 30, 2024
178843c
Python bindings
dirvine Oct 30, 2024
2ba4e89
feat: add python bindings using PyO3
dirvine Oct 30, 2024
773a8be
feat: test pythno bindings
dirvine Oct 30, 2024
4299c21
feat: test python bindings
dirvine Oct 30, 2024
9d3fd47
feat: test python bindings
dirvine Oct 30, 2024
f36df45
feat: test full python bindings
dirvine Oct 30, 2024
ab06d9c
feat: Python full bindings
dirvine Oct 30, 2024
9cc652b
feat: PYPI Token
dirvine Oct 30, 2024
8a622a3
feat: PYPI Token
dirvine Oct 30, 2024
221234f
feat: PYPI Token / linux/mac/win
dirvine Oct 30, 2024
0886ca2
feat: PYPI Token / linux/mac/win
dirvine Oct 30, 2024
63d8ad5
feat: PYPI Token / linux/mac/win test 5
dirvine Oct 30, 2024
3fe260b
feat: PYPI Token / linux/mac/win test 6
dirvine Oct 30, 2024
992e168
feat: PYPI Token / linux/mac/win test 7
dirvine Oct 30, 2024
1275135
docs(readme): restructure for Python and Rust documentation
dirvine Oct 30, 2024
2a4b4bf
feat: PYPI Token / linux/mac/win test 8
dirvine Oct 30, 2024
2ae4c18
remove unneeded file
dirvine Oct 30, 2024
b022fea
feat: add optional child field to DataMap
dirvine Nov 1, 2024
cd8f5e8
feat(data_map): Add hierarchical data map shrinking and expansion
dirvine Nov 1, 2024
b1a7e7a
feat(hierarchical): Add hierarchical data maps and flexible storage b…
dirvine Nov 2, 2024
a2f3a77
test: comprehensive integration tests for cross-backend operations
dirvine Nov 2, 2024
8b54c1c
version bump
dirvine Nov 2, 2024
4af6689
chore: Format
dirvine Nov 2, 2024
b65bcef
doc: Update README
dirvine Nov 2, 2024
748dd24
chore: fmt & clippy
dirvine Nov 2, 2024
256f1f7
feat: version bump and fmt
dirvine Nov 14, 2024
60ac0a1
fix: remove unwanted file
dirvine Nov 15, 2024
1b18b21
doc: update data_map.rs with comment
dirvine Nov 15, 2024
d03acd6
fix: prevent panics in decrypt_full_set and decrypt_range
dirvine Nov 15, 2024
3719022
doc: add comment on sorted chunks
dirvine Nov 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 143 additions & 0 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
name: Build and Publish Python Package

on:
push:
tags:
- 'v*'

# Add top-level permissions block
permissions:
id-token: write
contents: read

jobs:
macos:
runs-on: macos-latest
# Add permissions to job
permissions:
id-token: write
contents: read
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
target: [x86_64, aarch64]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist/*.whl
if-no-files-found: error

windows:
runs-on: windows-latest
# Add permissions to job
permissions:
id-token: write
contents: read
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
target: [x64]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
args: --release --out dist
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist/*.whl
if-no-files-found: error

linux:
runs-on: ubuntu-latest
# Add permissions to job
permissions:
id-token: write
contents: read
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
target: [x86_64]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --user cffi
python -m pip install --user patchelf
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
manylinux: auto
args: --release --out dist
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist/*.whl
if-no-files-found: error

sdist:
runs-on: ubuntu-latest
# Add permissions to job
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
- name: Upload sdist
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist/*.tar.gz
if-no-files-found: error

release:
name: Release
runs-on: ubuntu-latest
needs: [macos, windows, linux, sdist]
# Keep existing permissions
permissions:
id-token: write
contents: read
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
path: dist
- name: Display structure of downloaded files
run: ls -R dist
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist/
verbose: true
print-hash: true
11 changes: 10 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ license = "GPL-3.0"
name = "self_encryption"
readme = "README.md"
repository = "https://github.com/maidsafe/self_encryption"
version = "0.30.0"
version = "0.31.0"

[features]
default = []
python = ["pyo3/extension-module"]

[dependencies]
aes = "~0.8.1"
Expand All @@ -23,6 +27,7 @@ num_cpus = "1.13.0"
itertools = "~0.10.0"
tempfile = "3.6.0"
xor_name = "5.0.0"
pyo3 = { version = "0.19", optional = true, features = ["extension-module"] }

[dependencies.brotli]
version = "~3.3.0"
Expand Down Expand Up @@ -64,3 +69,7 @@ name = "basic_encryptor"
[[bench]]
name = "lib"
harness = false

[lib]
name = "self_encryption"
crate-type = ["cdylib", "rlib"]
Loading
Loading