sharedbox 0.1.0__tar.gz → 0.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. sharedbox-0.2.4/.github/workflows/ci.yaml +119 -0
  2. {sharedbox-0.1.0 → sharedbox-0.2.4}/.gitignore +3 -1
  3. sharedbox-0.2.4/CHANGELOG.md +37 -0
  4. sharedbox-0.2.4/CMakeLists.txt +102 -0
  5. {sharedbox-0.1.0 → sharedbox-0.2.4}/PKG-INFO +45 -25
  6. sharedbox-0.1.0/src/sharedbox.egg-info/PKG-INFO → sharedbox-0.2.4/README.md +43 -40
  7. sharedbox-0.2.4/docs/readme.md +234 -0
  8. sharedbox-0.2.4/install-vcpkg.sh +57 -0
  9. sharedbox-0.2.4/noxfile.py +20 -0
  10. sharedbox-0.2.4/pyproject.toml +83 -0
  11. sharedbox-0.1.0/cpp_src/shared_dict.cpp → sharedbox-0.2.4/src/sharedbox/_core/sharedmemory.cpp +1 -1
  12. sharedbox-0.2.4/src/sharedbox/_shareddict.pyi +40 -0
  13. {sharedbox-0.1.0 → sharedbox-0.2.4}/src/sharedbox/_version.py +3 -3
  14. sharedbox-0.2.4/src/sharedbox/py.typed +0 -0
  15. sharedbox-0.2.4/src/sharedbox/shareddict.cpp +465 -0
  16. sharedbox-0.2.4/src/sharedbox/shareddict.hpp +86 -0
  17. {sharedbox-0.1.0 → sharedbox-0.2.4}/tests/test_mixed_data_types.py +2 -3
  18. {sharedbox-0.1.0 → sharedbox-0.2.4}/tests/test_multiprocess_containers.py +2 -1
  19. {sharedbox-0.1.0 → sharedbox-0.2.4}/uv.lock +10 -10
  20. sharedbox-0.1.0/.github/workflows/ci.yaml +0 -79
  21. sharedbox-0.1.0/CHANGELOG.md +0 -12
  22. sharedbox-0.1.0/README.md +0 -132
  23. sharedbox-0.1.0/pyproject.toml +0 -54
  24. sharedbox-0.1.0/setup.cfg +0 -4
  25. sharedbox-0.1.0/setup.py +0 -106
  26. sharedbox-0.1.0/src/sharedbox/_shareddict.pyi +0 -32
  27. sharedbox-0.1.0/src/sharedbox/_shareddict.pyx +0 -350
  28. sharedbox-0.1.0/src/sharedbox.egg-info/SOURCES.txt +0 -33
  29. sharedbox-0.1.0/src/sharedbox.egg-info/dependency_links.txt +0 -1
  30. sharedbox-0.1.0/src/sharedbox.egg-info/not-zip-safe +0 -1
  31. sharedbox-0.1.0/src/sharedbox.egg-info/requires.txt +0 -5
  32. sharedbox-0.1.0/src/sharedbox.egg-info/top_level.txt +0 -1
  33. {sharedbox-0.1.0 → sharedbox-0.2.4}/LICENSE +0 -0
  34. {sharedbox-0.1.0 → sharedbox-0.2.4}/examples/basic_comparison.py +0 -0
  35. {sharedbox-0.1.0 → sharedbox-0.2.4}/examples/concurrent_access.py +0 -0
  36. {sharedbox-0.1.0 → sharedbox-0.2.4}/examples/getting_started.py +0 -0
  37. {sharedbox-0.1.0 → sharedbox-0.2.4}/examples/initialization_demo.py +0 -0
  38. {sharedbox-0.1.0 → sharedbox-0.2.4}/examples/memory_usage.py +0 -0
  39. {sharedbox-0.1.0 → sharedbox-0.2.4}/examples/mixed_data_benchmark.py +0 -0
  40. {sharedbox-0.1.0 → sharedbox-0.2.4}/examples/numpy_performance_benchmark.py +0 -0
  41. {sharedbox-0.1.0 → sharedbox-0.2.4}/examples/shared_cache_example.py +0 -0
  42. {sharedbox-0.1.0 → sharedbox-0.2.4}/src/sharedbox/__init__.py +0 -0
  43. /sharedbox-0.1.0/cpp_src/shared_dict.hpp → /sharedbox-0.2.4/src/sharedbox/_core/sharedmemory.hpp +0 -0
  44. {sharedbox-0.1.0 → sharedbox-0.2.4}/src/sharedbox/utils.py +0 -0
  45. {sharedbox-0.1.0 → sharedbox-0.2.4}/tests/test_initialization_data.py +0 -0
  46. {sharedbox-0.1.0 → sharedbox-0.2.4}/tests/test_numpy_support.py +0 -0
@@ -0,0 +1,119 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+ release:
9
+ types: [ published ]
10
+
11
+ jobs:
12
+ build_wheels:
13
+ name: Build wheel for ${{ matrix.python }}-${{ matrix.platform_id }}
14
+ runs-on: ${{ matrix.os }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ include:
19
+ # Windows
20
+ - os: windows-latest
21
+ python: cp310
22
+ platform_id: win_amd64
23
+ - os: windows-latest
24
+ python: cp311
25
+ platform_id: win_amd64
26
+ - os: windows-latest
27
+ python: cp312
28
+ platform_id: win_amd64
29
+ - os: windows-latest
30
+ python: cp313
31
+ platform_id: win_amd64
32
+
33
+ # Linux x86_64
34
+ - os: ubuntu-latest
35
+ python: cp310
36
+ platform_id: manylinux_x86_64
37
+ - os: ubuntu-latest
38
+ python: cp311
39
+ platform_id: manylinux_x86_64
40
+ - os: ubuntu-latest
41
+ python: cp312
42
+ platform_id: manylinux_x86_64
43
+ - os: ubuntu-latest
44
+ python: cp313
45
+ platform_id: manylinux_x86_64
46
+
47
+ # Linux musllinux x86_64
48
+ - os: ubuntu-latest
49
+ python: cp310
50
+ platform_id: musllinux_x86_64
51
+ - os: ubuntu-latest
52
+ python: cp311
53
+ platform_id: musllinux_x86_64
54
+ - os: ubuntu-latest
55
+ python: cp312
56
+ platform_id: musllinux_x86_64
57
+ - os: ubuntu-latest
58
+ python: cp313
59
+ platform_id: musllinux_x86_64
60
+
61
+ steps:
62
+ - uses: actions/checkout@v5
63
+ with:
64
+ fetch-depth: 0
65
+ ref: ${{ github.event_name == 'release' && github.event.release.tag_name || '' }}
66
+
67
+ - name: Build wheels
68
+ uses: pypa/cibuildwheel@v3.2.0
69
+ env:
70
+ CIBW_BUILD: ${{ matrix.python }}-${{ matrix.platform_id }}
71
+ CIBW_CONTAINER_ENGINE: "docker; create_args: --shm-size=1g"
72
+ CIBW_TEST_REQUIRES: pytest numpy
73
+ CIBW_TEST_COMMAND: pytest {project}/tests
74
+ with:
75
+ package-dir: .
76
+ output-dir: wheelhouse
77
+
78
+ - name: Upload wheel artifacts
79
+ uses: actions/upload-artifact@v4
80
+ with:
81
+ name: cibw-wheels-${{ matrix.python }}-${{ matrix.platform_id }}
82
+ path: ./wheelhouse/*.whl
83
+
84
+ make_sdist:
85
+ name: Make SDist
86
+ runs-on: ubuntu-latest
87
+ needs: [build_wheels]
88
+ if: github.event_name == 'release' && github.event.action == 'published'
89
+ steps:
90
+ - uses: actions/checkout@v5
91
+ with:
92
+ fetch-depth: 0
93
+ ref: ${{ github.event_name == 'release' && github.event.release.tag_name || '' }}
94
+
95
+ - name: Build SDist
96
+ run: pipx run build --sdist
97
+
98
+ - uses: actions/upload-artifact@v4
99
+ with:
100
+ name: cibw-sdist
101
+ path: dist/*.tar.gz
102
+
103
+ upload_pypi:
104
+ name: Upload to PyPI
105
+ needs: [build_wheels, make_sdist]
106
+ runs-on: ubuntu-latest
107
+ environment: pypi
108
+ permissions:
109
+ id-token: write
110
+ if: github.event_name == 'release' && github.event.action == 'published'
111
+ steps:
112
+ - uses: actions/download-artifact@v5
113
+ with:
114
+ # unpacks all CIBW artifacts into dist/
115
+ pattern: cibw-*
116
+ path: dist
117
+ merge-multiple: true
118
+
119
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -16,4 +16,6 @@ wheels/
16
16
 
17
17
  src/sharedbox/_version.py
18
18
 
19
- wheelhouse/
19
+ wheelhouse/
20
+
21
+ .nox/
@@ -0,0 +1,37 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ Dates are marked as `DD-MM-YYYY`
9
+
10
+ ## [0.2.2] - 05-10-2025
11
+
12
+ ### Fixed
13
+
14
+ - Fix CI (again)
15
+
16
+ ## [0.2.1] - 05-10-2025 (YANKED)
17
+
18
+ ### Fixed
19
+
20
+ - Fix CI bug that was not uploading all wheels
21
+
22
+ ## [0.2.0] - 05-10-2025 (YANKED)
23
+
24
+ ### Changed
25
+
26
+ - Rewrite codebase in nanobind
27
+
28
+ ## [0.1.0] - 29-09-2025
29
+
30
+ ### Added
31
+
32
+ - Initial release
33
+
34
+ [0.2.2]: (https://github.com/jacopoabramo/sharedbox/compare/0.2.1...0.2.2)
35
+ [0.2.1]: (https://github.com/jacopoabramo/sharedbox/compare/0.2.0...0.2.1)
36
+ [0.2.0]: (https://github.com/jacopoabramo/sharedbox/compare/0.1.0...0.2.0)
37
+ [0.1.0]: (https://github.com/jacopoabramo/sharedbox/commits/0.1.0)
@@ -0,0 +1,102 @@
1
+ cmake_minimum_required(VERSION 3.15)
2
+
3
+ # Set vcpkg toolchain from VCPKG_ROOT environment variable
4
+ if(DEFINED ENV{VCPKG_ROOT})
5
+ set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
6
+ CACHE STRING "Vcpkg toolchain file")
7
+ message(STATUS "Using vcpkg toolchain from VCPKG_ROOT: ${CMAKE_TOOLCHAIN_FILE}")
8
+ else()
9
+ message(FATAL_ERROR "VCPKG_ROOT environment variable is not set. Please install vcpkg and set VCPKG_ROOT to the vcpkg installation directory.")
10
+ endif()
11
+
12
+ project(${SKBUILD_PROJECT_NAME} LANGUAGES CXX C)
13
+
14
+ # Set C++ standard
15
+ set(CMAKE_CXX_STANDARD 17)
16
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
17
+
18
+ if (CMAKE_VERSION VERSION_LESS 3.18)
19
+ set(DEV_MODULE Development)
20
+ else()
21
+ set(DEV_MODULE Development.Module)
22
+ endif()
23
+
24
+ set(Python_ROOT_DIR "${CMAKE_SOURCE_DIR}/.venv")
25
+ find_package(Python 3.10 COMPONENTS Interpreter ${DEV_MODULE} REQUIRED)
26
+
27
+ message(STATUS "Using Python interpreter: ${Python_EXECUTABLE}")
28
+
29
+ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
30
+ set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
31
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
32
+ endif()
33
+
34
+ execute_process(
35
+ COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir
36
+ OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE nanobind_ROOT
37
+ )
38
+ find_package(nanobind CONFIG REQUIRED)
39
+
40
+ find_package(Boost REQUIRED CONFIG)
41
+
42
+ message(STATUS "Found Boost version: ${Boost_VERSION}")
43
+
44
+ # Platform-specific compiler settings
45
+ if(WIN32)
46
+ set(PLATFORM_COMPILE_DEFS
47
+ BOOST_ALL_NO_LIB
48
+ _WIN32_WINNT=0x0601
49
+ WIN32_LEAN_AND_MEAN
50
+ NOMINMAX
51
+ )
52
+ set(PLATFORM_COMPILE_ARGS /EHsc /O2)
53
+ set(PLATFORM_LIBRARIES kernel32 user32 advapi32)
54
+ else()
55
+ set(PLATFORM_COMPILE_DEFS
56
+ BOOST_ALL_NO_LIB
57
+ _GNU_SOURCE
58
+ )
59
+ set(PLATFORM_COMPILE_ARGS -O3)
60
+ set(PLATFORM_LIBRARIES rt pthread)
61
+ endif()
62
+
63
+ # Create the _shareddict extension using nanobind
64
+ nanobind_add_module(_shareddict
65
+ NB_STATIC # Link nanobind statically
66
+ src/sharedbox/shareddict.cpp
67
+ src/sharedbox/_core/sharedmemory.cpp
68
+ )
69
+
70
+ target_include_directories(_shareddict PRIVATE
71
+ src/sharedbox
72
+ src/sharedbox/_core
73
+ )
74
+
75
+ target_compile_definitions(_shareddict PRIVATE ${PLATFORM_COMPILE_DEFS})
76
+ target_compile_options(_shareddict PRIVATE ${PLATFORM_COMPILE_ARGS})
77
+
78
+ # Link Boost (header-only, no library needed for interprocess/container) and platform libraries
79
+ target_link_libraries(_shareddict PRIVATE
80
+ Boost::headers # Boost header-only libraries
81
+ ${PLATFORM_LIBRARIES}
82
+ )
83
+
84
+ # Generate stub file for the _shareddict module in the source folder
85
+ nanobind_add_stub(
86
+ _shareddict_stub
87
+ MODULE _shareddict
88
+ OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/src/sharedbox/_shareddict.pyi
89
+ PYTHON_PATH $<TARGET_FILE_DIR:_shareddict>
90
+ DEPENDS _shareddict
91
+ MARKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/src/sharedbox/py.typed
92
+ )
93
+
94
+ # Install the extension to the sharedbox package
95
+ install(TARGETS _shareddict LIBRARY DESTINATION sharedbox)
96
+
97
+ # Install stub file and marker file from source folder
98
+ install(FILES
99
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/sharedbox/_shareddict.pyi
100
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/sharedbox/py.typed
101
+ DESTINATION sharedbox
102
+ )
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sharedbox
3
- Version: 0.1.0
3
+ Version: 0.2.4
4
4
  Summary: Python containers using shared memory.
5
- Author-email: Jacopo Abramo <jacopo.abramo@gmail.com>
5
+ Author-Email: Jacopo Abramo <jacopo.abramo@gmail.com>
6
6
  License-Expression: Apache-2.0
7
7
  Classifier: Development Status :: 3 - Alpha
8
8
  Classifier: Intended Audience :: Developers
@@ -14,19 +14,13 @@ Classifier: Programming Language :: C++
14
14
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
15
  Requires-Python: >=3.10
16
16
  Description-Content-Type: text/markdown
17
- License-File: LICENSE
18
- Requires-Dist: numpy>=2.2.6
19
- Provides-Extra: dev
20
- Requires-Dist: pytest>=8.4.2; extra == "dev"
21
- Requires-Dist: ruff>=0.13.1; extra == "dev"
22
- Dynamic: license-file
23
17
 
24
18
  # `sharedbox`
25
19
 
26
20
  > [!WARNING]
27
21
  > This project is a work in progress; be patient or feel free to contribute.
28
22
 
29
- Python inter-process shared containers leveraging `boost::interprocess`.
23
+ Python inter-process shared containers leveraging the [`boost::interprocess`](https://www.boost.org/doc/libs/latest/doc/html/interprocess.html) library.
30
24
 
31
25
  ## Installation
32
26
 
@@ -110,42 +104,66 @@ shared_config.unlink()
110
104
  The `examples/` folder contains some code examples on how to use the package.
111
105
 
112
106
  ## Building locally
107
+
113
108
  ### Requirements
114
109
 
115
110
  - [`git`](https://git-scm.com/downloads)
116
111
  - [`uv`](https://docs.astral.sh/uv/getting-started/installation/)
117
112
  - Python >= 3.10
118
113
  - [`vcpkg`](https://vcpkg.io/en/)
119
- - `cython>=3.1`
120
- - A C++17 compatible compiler
114
+ - [`CMake`](https://cmake.org/download/) >= 3.15
115
+ - A C++17 compatible compiler (MSVC on Windows, GCC on Linux)
121
116
 
122
- First [install and boostrap vcpkg](https://learn.microsoft.com/en-us/vcpkg/get_started/get-started-vscode?pivots=shell-cmd) somewhere in your system.
117
+ > [!NOTE]
118
+ > The build system automatically detects `vcpkg` and installed libraries through the `VCPKG_ROOT` environment variable.
119
+ > Make sure it's set before building.
123
120
 
124
- ```sh
125
- # for Windows it is reccomended to install it in C:\
126
- cd C:\
121
+ ### Install and configure vcpkg
127
122
 
128
- git clone https://github.com/microsoft/vcpkg.git
129
- cd vcpkg && bootstrap-vcpkg.bat
130
- ```
123
+ First, [install and bootstrap vcpkg](https://learn.microsoft.com/en-us/vcpkg/get_started/get-started?pivots=shell-cmd) somewhere in your system.
131
124
 
132
- Don't forget to add it to your `PATH`.
125
+ #### Windows
126
+ ```cmd
127
+ # It is recommended to install in C:\
128
+ cd C:\
129
+ git clone https://github.com/microsoft/vcpkg.git
130
+ cd vcpkg
131
+ bootstrap-vcpkg.bat
133
132
 
134
- Also, add an environment variable pointing to the root of `vcpkg`:
133
+ # Set the VCPKG_ROOT environment variable (permanently)
134
+ setx VCPKG_ROOT "C:\vcpkg"
135
135
 
136
- ```sh
137
- set "VCPKG_ROOT=C:\path\to\vcpkg"
136
+ # Add vcpkg to your PATH (permanently)
137
+ setx PATH "%PATH%;C:\vcpkg"
138
138
  ```
139
139
 
140
- Clone this repository, then install `boost::interprocess`:
140
+ #### Linux
141
+ You can use the `install-vcpkg.sh` script which will
142
+ automatically install `vcpkg` in the `/opt` folder
143
+ and set the `VCPKG_ROOT` environment variable.
144
+ The script must be run with super user priviledges:
141
145
 
146
+ ```bash
147
+ sudo bash install-vcpkg.sh
142
148
  ```
149
+
150
+ ### Install `boost-interprocess`
151
+
152
+ ```bash
153
+ # From anywhere (vcpkg should be in PATH)
143
154
  vcpkg install boost-interprocess
144
155
  ```
145
156
 
146
- Finally, through `uv`, install the package in a virtual environment:
157
+ ### Build the package
147
158
 
148
- ```sh
159
+ Clone this repository and install using `uv`:
160
+
161
+ ```bash
162
+ # Clone the repository
163
+ git clone https://github.com/jacopoabramo/sharedbox.git
164
+ cd sharedbox
165
+
166
+ # Create virtual environment and install in development mode
149
167
  uv venv --python 3.10
150
168
  uv pip install -e .[dev]
151
169
  ```
@@ -153,3 +171,5 @@ uv pip install -e .[dev]
153
171
  ## License
154
172
 
155
173
  Licensed under [Apache 2.0](./LICENSE)
174
+
175
+ `sharedbox` is built using the Boost C++ library, which is licensed under the [Boost Software License](https://boost.org.cpp.al/LICENSE_1_0.txt).
@@ -1,32 +1,9 @@
1
- Metadata-Version: 2.4
2
- Name: sharedbox
3
- Version: 0.1.0
4
- Summary: Python containers using shared memory.
5
- Author-email: Jacopo Abramo <jacopo.abramo@gmail.com>
6
- License-Expression: Apache-2.0
7
- Classifier: Development Status :: 3 - Alpha
8
- Classifier: Intended Audience :: Developers
9
- Classifier: Programming Language :: Python :: 3.10
10
- Classifier: Programming Language :: Python :: 3.11
11
- Classifier: Programming Language :: Python :: 3.12
12
- Classifier: Programming Language :: Python :: 3.13
13
- Classifier: Programming Language :: C++
14
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
- Requires-Python: >=3.10
16
- Description-Content-Type: text/markdown
17
- License-File: LICENSE
18
- Requires-Dist: numpy>=2.2.6
19
- Provides-Extra: dev
20
- Requires-Dist: pytest>=8.4.2; extra == "dev"
21
- Requires-Dist: ruff>=0.13.1; extra == "dev"
22
- Dynamic: license-file
23
-
24
1
  # `sharedbox`
25
2
 
26
3
  > [!WARNING]
27
4
  > This project is a work in progress; be patient or feel free to contribute.
28
5
 
29
- Python inter-process shared containers leveraging `boost::interprocess`.
6
+ Python inter-process shared containers leveraging the [`boost::interprocess`](https://www.boost.org/doc/libs/latest/doc/html/interprocess.html) library.
30
7
 
31
8
  ## Installation
32
9
 
@@ -110,42 +87,66 @@ shared_config.unlink()
110
87
  The `examples/` folder contains some code examples on how to use the package.
111
88
 
112
89
  ## Building locally
90
+
113
91
  ### Requirements
114
92
 
115
93
  - [`git`](https://git-scm.com/downloads)
116
94
  - [`uv`](https://docs.astral.sh/uv/getting-started/installation/)
117
95
  - Python >= 3.10
118
96
  - [`vcpkg`](https://vcpkg.io/en/)
119
- - `cython>=3.1`
120
- - A C++17 compatible compiler
97
+ - [`CMake`](https://cmake.org/download/) >= 3.15
98
+ - A C++17 compatible compiler (MSVC on Windows, GCC on Linux)
121
99
 
122
- First [install and boostrap vcpkg](https://learn.microsoft.com/en-us/vcpkg/get_started/get-started-vscode?pivots=shell-cmd) somewhere in your system.
100
+ > [!NOTE]
101
+ > The build system automatically detects `vcpkg` and installed libraries through the `VCPKG_ROOT` environment variable.
102
+ > Make sure it's set before building.
123
103
 
124
- ```sh
125
- # for Windows it is reccomended to install it in C:\
126
- cd C:\
104
+ ### Install and configure vcpkg
127
105
 
128
- git clone https://github.com/microsoft/vcpkg.git
129
- cd vcpkg && bootstrap-vcpkg.bat
130
- ```
106
+ First, [install and bootstrap vcpkg](https://learn.microsoft.com/en-us/vcpkg/get_started/get-started?pivots=shell-cmd) somewhere in your system.
131
107
 
132
- Don't forget to add it to your `PATH`.
108
+ #### Windows
109
+ ```cmd
110
+ # It is recommended to install in C:\
111
+ cd C:\
112
+ git clone https://github.com/microsoft/vcpkg.git
113
+ cd vcpkg
114
+ bootstrap-vcpkg.bat
133
115
 
134
- Also, add an environment variable pointing to the root of `vcpkg`:
116
+ # Set the VCPKG_ROOT environment variable (permanently)
117
+ setx VCPKG_ROOT "C:\vcpkg"
135
118
 
136
- ```sh
137
- set "VCPKG_ROOT=C:\path\to\vcpkg"
119
+ # Add vcpkg to your PATH (permanently)
120
+ setx PATH "%PATH%;C:\vcpkg"
138
121
  ```
139
122
 
140
- Clone this repository, then install `boost::interprocess`:
123
+ #### Linux
124
+ You can use the `install-vcpkg.sh` script which will
125
+ automatically install `vcpkg` in the `/opt` folder
126
+ and set the `VCPKG_ROOT` environment variable.
127
+ The script must be run with super user priviledges:
141
128
 
129
+ ```bash
130
+ sudo bash install-vcpkg.sh
142
131
  ```
132
+
133
+ ### Install `boost-interprocess`
134
+
135
+ ```bash
136
+ # From anywhere (vcpkg should be in PATH)
143
137
  vcpkg install boost-interprocess
144
138
  ```
145
139
 
146
- Finally, through `uv`, install the package in a virtual environment:
140
+ ### Build the package
147
141
 
148
- ```sh
142
+ Clone this repository and install using `uv`:
143
+
144
+ ```bash
145
+ # Clone the repository
146
+ git clone https://github.com/jacopoabramo/sharedbox.git
147
+ cd sharedbox
148
+
149
+ # Create virtual environment and install in development mode
149
150
  uv venv --python 3.10
150
151
  uv pip install -e .[dev]
151
152
  ```
@@ -153,3 +154,5 @@ uv pip install -e .[dev]
153
154
  ## License
154
155
 
155
156
  Licensed under [Apache 2.0](./LICENSE)
157
+
158
+ `sharedbox` is built using the Boost C++ library, which is licensed under the [Boost Software License](https://boost.org.cpp.al/LICENSE_1_0.txt).