Smartredis

Latest version: v0.6.1

Safety actively analyzes 715032 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.4.2

What's Changed
* Cleanup obsolete build and test files by billschereriii in https://github.com/CrayLabs/SmartRedis/pull/366
* Update language support matrix by billschereriii in https://github.com/CrayLabs/SmartRedis/pull/379
* Fix bad kwarg when launching server via UDS by ankona in https://github.com/CrayLabs/SmartRedis/pull/378
* Update URI for installation instructions by ankona in https://github.com/CrayLabs/SmartRedis/pull/380
* Make testing more robust by billschereriii in https://github.com/CrayLabs/SmartRedis/pull/381
* Mitigate lint errors, apply formatters by ankona in https://github.com/CrayLabs/SmartRedis/pull/382
* Add support for static builds by billschereriii in https://github.com/CrayLabs/SmartRedis/pull/386
* Fix Postmerge tests by billschereriii in https://github.com/CrayLabs/SmartRedis/pull/388
* Update third-party software by billschereriii in https://github.com/CrayLabs/SmartRedis/pull/389
* Extended section on dataset aggregation by billschereriii in https://github.com/CrayLabs/SmartRedis/pull/390
* Resolve pylint error by ankona in https://github.com/CrayLabs/SmartRedis/pull/393
* Update `cibuildwheel` version by MattToast in https://github.com/CrayLabs/SmartRedis/pull/397
* Update changelog for release by MattToast in https://github.com/CrayLabs/SmartRedis/pull/398
* Bump SR version number to 0.4.2 by MattToast in https://github.com/CrayLabs/SmartRedis/pull/399
* Update to v0.4.2 by MattToast in https://github.com/CrayLabs/SmartRedis/pull/400


**Full Changelog**: https://github.com/CrayLabs/SmartRedis/compare/v0.4.1...v0.4.2

0.4.1

Released on July 5, 2023

Description

This release revamps the build and test systems for SmartRedis as well
as improving compatibility with different Fortran compilers and laying
the groundwork for future support for interacting with multiple
concurrent backend databases:

- Documentation improvements
- Improved compatibility of type hints with third-party software
- Added type hints to the Python interface layer
- Add support for Python 3.10
- Updated setup.py to work with the new build system
- Remove unneeded method from Python SRObject class
- Fixed a memory leak in the C layer
- Revamp SmartRedis test system
- Remove debug output in pybind layer
- Update Hiredis version to 1.1.0
- Enable parallel build for the SmartRedis examples
- Experimental support for Nvidia toolchain
- Major revamp of build and test systems for SmartRedis
- Refactor Fortran methods to return default logical kind
- Update CI/CD tests to use a modern version of MacOS
- Fix the spelling of the Dataset destructor's C interface (now
DeallocateDataSet)
- Update Redis++ version to 1.3.8
- Refactor third-party software dependency installation
- Add pip-install target to Makefile to automate this process going
forward (note: this was later removed)
- Added infrastructure for multiDB support

Detailed Notes

- Assorted updates and clarifications to the documentation ([PR367](https://github.com/CrayLabs/SmartRedis/pull/367))
- Turn ParamSpec usage into forward
references to not require typing-extensions at runtime ([PR365](https://github.com/CrayLabs/SmartRedis/pull/365))
- Added type hints to the Python interface layer ([PR361](https://github.com/CrayLabs/SmartRedis/pull/361))
- List Python 3.10 support and loosen PyTorch requirement to allow for
versions support Python 3.10 ([PR360](https://github.com/CrayLabs/SmartRedis/pull/360))
- Streamlined setup.py to simplify Python install (PR359)
- Remove from_pybind() from Python SRObject class as it's not needed
and didn't work properly anyway ([PR358](https://github.com/CrayLabs/SmartRedis/pull/358))
- Fixed memory leaked from the C layer when calling
get_string_option() ([PR357](https://github.com/CrayLabs/SmartRedis/pull/357))
- Major revamp to simplify use of SmartRedis test system, automating
most test processes ([PR356](https://github.com/CrayLabs/SmartRedis/pull/356))
- Remove debug output in pybind layer associated with put_dataset ([PR352](https://github.com/CrayLabs/SmartRedis/pull/352))
- Updated to the latest version of Hiredis (1.1.0) ([PR351](https://github.com/CrayLabs/SmartRedis/pull/351))
- Enable parallel build for the SmartRedis examples by moving utility
Fortran code into a small static library ([PR349](https://github.com/CrayLabs/SmartRedis/pull/349))
- For the NVidia toolchain only: Replaces the assumed rank feature of
F2018 used in the Fortran client with assumed shape arrays, making
it possible to compile SmartRedis with the Nvidia toolchain. ([PR346](https://github.com/CrayLabs/SmartRedis/pull/346))
- Rework the build and test system to improve maintainability of the
library. There have been several significant changes, including that
Python and Fortran clients are no longer built by defaults and that
there are Make variables that customize the build process. Please
review the build documentation and `make help` to see all that has
changed. ([PR341](https://github.com/CrayLabs/SmartRedis/pull/341))
- Many Fortran routines were returning logical kind = c_bool which
turns out not to be the same default kind of most Fortran compilers.
These have now been refactored so that users need not import
iso_c_binding in their own applications ([PR340](https://github.com/CrayLabs/SmartRedis/pull/340))
- Update MacOS version in CI/CD tests from 10.15 to 12.0 ([PR339](https://github.com/CrayLabs/SmartRedis/pull/339))
- Correct the spelling of the C DataSet destruction interface from
DeallocateeDataSet to DeallocateDataSet ([PR338](https://github.com/CrayLabs/SmartRedis/pull/338))
- Updated the version of Redis++ to v1.3.8 to pull in a change that
ensures the redis++.pc file properly points to the generated
libraries ([PR334](https://github.com/CrayLabs/SmartRedis/pull/334))
- Third-party software dependency installation is now handled in the
Makefile instead of separate scripts
- New pip-install target in Makefile will be a dependency of the lib
target going forward so that users don't have to manually pip
install SmartRedis in the future ([PR330](https://github.com/CrayLabs/SmartRedis/pull/330))
- Added ConfigOptions class and API, which will form the backbone of
multiDB support ([PR303](https://github.com/CrayLabs/SmartRedis/pull/303))

0.4.0

Released on April 12, 2023

Description

This release provides a variety of features to improve usability and
debugging of the SmartRedis library, notably including Unix domain
socket support, logging, the ability to print a textual representation
of a string or dataset, dataset inspection, documentation updates, fixes
to the multi-GPU support, and much more:

- Prepare 0.4.0 release
- Disable codecov CI tests
- Improved error message in to_string methods in C interface
- Streamlined PyBind interface layer
- Updated Python API documentation
- Streamlined C interface layer
- Improved performance of get, put, and copy dataset methods
- Fix a bug which prevented multi-GPU model set in some cases
- Streamline pipelined execution of tasks for backend database
- Enhance code coverage to include all 4 languages supported by
SmartRedis
- Fix a bug which resulted in wrong key prefixing when retrieving
aggregation lists in ensembles
- Correct assorted API documentation errors
- Improve documentation of exception handling in Redis server classes
- Improve error handling for setting of scripts and models
- Add support to inspect the dimensions of a tensor via
get_tensor_dims()
- Split dataset prefixing control from use_tensor_ensemble_prefix() to
use_dataset_ensemble_prefix()
- Update to the latest version of redis-plus-plus
- Update to the latest version of PyBind
- Change documentation theme to sphinx_book_theme and fix doc strings
- Add print capability for Client and DataSet
- Add support for inspection of tensors and metadata inside datasets
- Add support for user-directed logging for Python clients, using
Client, Dataset, or LogContext logging methods
- Add support for user-directed logging for C and Fortran clients
without a Client or Dataset context
- Additional error reporting for connections to and commands run
against Redis databases
- Improved error reporting capabilities for Fortran clients
- Python error messages from SmartRedis contain more information
- Added logging functionality to the SmartRedis library
- A bug related to thread pool initialization was fixed.
- This version adds new functionality in the form of support for Unix
Domain Sockets.
- Fortran client can now be optionally built with the rest of the
library
- Initial support for dataset conversions, specifically Xarray.

Detailed Notes

- Update docs and version numbers in preparation for version 0.4.0.
Clean up duplicate marking of numpy dependency
([PR321](https://github.com/CrayLabs/SmartRedis/pull/321))
- Remove codecov thresholds to avoid commits being marked as
\'failed\' due to coverage variance
([PR317](https://github.com/CrayLabs/SmartRedis/pull/317))
- Corrected the error message in to_string methods in C interface to
not overwrite the returned error message and to name the function
([PR320](https://github.com/CrayLabs/SmartRedis/pull/320))
- Streamlined PyBind interface layer to reduce repetitive boilerplate
code ([PR315](https://github.com/CrayLabs/SmartRedis/pull/315))
- Updated Python API summary table to include new methods
([PR313](https://github.com/CrayLabs/SmartRedis/pull/313))
- Streamlined C interface layer to reduce repetitive boilerplate code
([PR312](https://github.com/CrayLabs/SmartRedis/pull/312))
- Leveraged Redis pipelining to improve performance of get, put, and
copy dataset methods
([PR311](https://github.com/CrayLabs/SmartRedis/pull/311))
- <Redis::set_model_multigpu>() will now upload the correct model to
all GPUs ([PR310](https://github.com/CrayLabs/SmartRedis/pull/310))
- RedisCluster::\_run_pipeline() will no longer unconditionally apply
a retry wait before returning
([PR309](https://github.com/CrayLabs/SmartRedis/pull/309))
- Expand code coverage to all four languages and make the CI/CD more
efficent ([PR308](https://github.com/CrayLabs/SmartRedis/pull/308))
- An internal flag was set incorrectly, it resulted in wrong key
prefixing when accessing (retrieving or querying) lists created in
ensembles ([PR306](https://github.com/CrayLabs/SmartRedis/pull/306))
- Corrected a variety of Doxygen errors and omissions in the API
documentation
([PR305](https://github.com/CrayLabs/SmartRedis/pull/305))
- Added throw documentation for exception handling in redis.h,
redisserver.h, rediscluster.h
([PR301](https://github.com/CrayLabs/SmartRedis/pull/301))
- Added error handling for a rare edge condition when setting scripts
and models
([PR300](https://github.com/CrayLabs/SmartRedis/pull/300))
- Added support to inspect the dimensions of a tensor via new
get_tensor_dims() method
([PR299](https://github.com/CrayLabs/SmartRedis/pull/299))
- The use_tensor_ensemble_prefix() API method no longer controls
whether datasets are prefixed. A new API method,
use_dataset_ensemble_prefix() now manages this.
([PR298](https://github.com/CrayLabs/SmartRedis/pull/298))
- Updated from redis-plus-plus v1.3.2 to v1.3.5
([PR296](https://github.com/CrayLabs/SmartRedis/pull/296))
- Updated from PyBind v2.6.2 to v2.10.3
([PR295](https://github.com/CrayLabs/SmartRedis/pull/295))
- Change documentation theme to sphinx_book_theme to match SmartSim
documentation theme and fix Python API doc string errors
([PR294](https://github.com/CrayLabs/SmartRedis/pull/294))
- Added print capability for Client and DataSet to give details
diagnostic information for debugging
([PR293](https://github.com/CrayLabs/SmartRedis/pull/293))
- Added support for retrieval of names and types of tensors and
metadata inside datasets
([PR291](https://github.com/CrayLabs/SmartRedis/pull/291))
- Added support for user-directed logging for Python clients via
{Client, Dataset, LogContext}.{log_data, log_warning, log_error}
methods ([PR289](https://github.com/CrayLabs/SmartRedis/pull/289))
- Added support for user-directed logging without a Client or Dataset
context to C and Fortran clients via \_string() methods
([PR288](https://github.com/CrayLabs/SmartRedis/pull/288))
- Added logging to capture transient errors that arise in the \_run()
and \_connect() methods of the Redis and RedisCluster classes
([PR287](https://github.com/CrayLabs/SmartRedis/pull/287))
- Tweak direct testing of Redis and RedisCluster classes
([PR286](https://github.com/CrayLabs/SmartRedis/pull/286))
- Resolve a disparity in the construction of Python client and
database classes
([PR285](https://github.com/CrayLabs/SmartRedis/pull/285))
- Fortran clients can now access error text and source location
([PR284](https://github.com/CrayLabs/SmartRedis/pull/284))
- Add exception location information from CPP code to Python
exceptions
([PR283](https://github.com/CrayLabs/SmartRedis/pull/283))
- Added client activity and manual logging for developer use
([PR281](https://github.com/CrayLabs/SmartRedis/pull/281))
- Fix thread pool error
([PR280](https://github.com/CrayLabs/SmartRedis/pull/280))
- Update library linking instructions and update Fortran tester build
process ([PR277](https://github.com/CrayLabs/SmartRedis/pull/277))
- Added [add_metadata_for_xarray]{.title-ref} and
[transform_to_xarray]{.title-ref} methods in
[DatasetConverter]{.title-ref} class for initial support with Xarray
([PR262](https://github.com/CrayLabs/SmartRedis/pull/262))
- Change Dockerfile to use Ubuntu 20.04 LTS image
([PR276](https://github.com/CrayLabs/SmartRedis/pull/276))
- Implemented support for Unix Domain Sockets, including
refactorization of server address code, test cases, and check-in
tests. ([PR252](https://github.com/CrayLabs/SmartRedis/pull/252))
- A new make target [make lib-with-fortran]{.title-ref} now compiles
the Fortran client and dataset into its own library which
applications can link against
([PR245](https://github.com/CrayLabs/SmartRedis/pull/245))

0.3.1

Released on June 24, 2022

Description

Version 0.3.1 adds new functionality in the form of DataSet aggregation lists for pipelined retrieval of data, convenient support for multiple GPUs, and the ability to delete scripts and models from the backend database. It also introduces multithreaded execution for certain tasks that span multiple shards of a clustered database, and it incorporates a variety of internal improvements that will enhance the library going forward.

Detailed Notes

- Implemented DataSet aggregation lists in all client languages, for pipelined retrieval of data across clustered and non-clustered backend databases. ([PR258](https://github.com/CrayLabs/SmartRedis/pull/258)) ([PR257](https://github.com/CrayLabs/SmartRedis/pull/257)) ([PR256](https://github.com/CrayLabs/SmartRedis/pull/256)) ([PR248](https://github.com/CrayLabs/SmartRedis/pull/248)) New commands are:

- append_to_list()
- delete_list()
- copy_list()
- rename_list()
- get_list_length()
- poll_list_length()
- poll_list_length_gte()
- poll_list_length_lte()
- get_datasets_from_list()
- get_dataset_list_range()
- use_list_ensemble_prefix()

- Implemented multithreaded execution for parallel dataset list retrieval on clustered databases. The number of threads devoted for this purpose is controlled by the new environment variable SR_THERAD_COUNT. The value defaults to 4, but may be any positive integer or special value zero, which will cause the SmartRedis runtime to allocate one thread for each available hardware context. ([PR251](https://github.com/CrayLabs/SmartRedis/pull/251)) ([PR246](https://github.com/CrayLabs/SmartRedis/pull/246))

- Augment support for GPUs by implementing multi-GPU convenience functions for all client languages. ([PR254](https://github.com/CrayLabs/SmartRedis/pull/254)) ([PR250](https://github.com/CrayLabs/SmartRedis/pull/250)) ([PR244](https://github.com/CrayLabs/SmartRedis/pull/244)) New commands are:

- set_model_from_file_multigpu()
- set_model_multigpu()
- set_script_from_file_multigpu()
- set_script_multigpu()
- run_model_multigpu()
- run_script_multigpu()
- delete_model_multigpu()
- delete_script_multigpu()

- Added API calls for all clients to delete models and scripts from the backend database. ([PR240](https://github.com/CrayLabs/SmartRedis/pull/240)) New commands are:

- delete_script()
- delete_model()

- Updated the use of backend RedisAI API calls to discontinue use of deprecated methods for model selection (AI.MODELSET) and execution (AI.MODELRUN) in favor of current methods AI.MODELSTORE and AI.MODELEXECUTE, respectively. ([PR234](https://github.com/CrayLabs/SmartRedis/pull/234))

- SmartRedis will no longer call the C runtime method srand() to ensure that it does not interfere with random number generation in client code. It now uses a separate instance of the C++ random number generator. ([PR233](https://github.com/CrayLabs/SmartRedis/pull/233))
- Updated the way that the Fortran enum_kind type defined in the fortran_c\_interop module is defined in order to better comply with Fortran standard and not interfere with GCC 6.3.0. ([PR231](https://github.com/CrayLabs/SmartRedis/pull/231))
- Corrected the spelling of the word \"command\" in a few error message strings. ([PR221](https://github.com/CrayLabs/SmartRedis/pull/221))
- SmartRedis now requires a CMake version 3.13 or later in order to utilize the add_link_options CMake command. ([PR217](https://github.com/CrayLabs/SmartRedis/pull/217))
- Updated and improved the documentation of the SmartRedis library. In particular, a new SmartRedis Integration Guide provides an introduction to using the SmartRedis library and integrating it with existing software. ([PR261](https://github.com/CrayLabs/SmartRedis/pull/261)) ([PR260](https://github.com/CrayLabs/SmartRedis/pull/260)) ([PR259](https://github.com/CrayLabs/SmartRedis/pull/259)) ([SSPR214](https://github.com/CrayLabs/SmartSim/pull/214))
- Added clustered Redis testing to automated GitHub check-in testing. ([PR239](https://github.com/CrayLabs/SmartRedis/pull/239))
- Updated the SmartRedis internal API for building commands for the backend database. ([PR223](https://github.com/CrayLabs/SmartRedis/pull/233)) This change should not be visible to clients.
- The SmartRedis example code is now validated through the automated GitHub checkin process. This will help ensure that the examples do not fall out of date. ([PR220](https://github.com/CrayLabs/SmartRedis/pull/220))
- Added missing copyright statements to CMakeLists.txt and the SmartRedis examples. ([PR219](https://github.com/CrayLabs/SmartRedis/pull/219))
- Updated the C++ test coverage to ensure that all test files are properly executed when running \"make test\". ([PR218](https://github.com/CrayLabs/SmartRedis/pull/218))
- Fixed an internal naming conflict between a local variable and a class member variable in the DataSet class. ([PR215](https://github.com/CrayLabs/SmartRedis/pull/215)) This should not be visible to clients.
- Updated the internal documentation of methods in SmartRedis C++ classes with the override keyword to improve compliance with the latest C++ standards. ([PR214](https://github.com/CrayLabs/SmartRedis/pull/214)) This change should not be visible to clients.
- Renamed variables internally to more cleanly differentiate between names that are given to clients for tensors, models, scripts, datasets, etc., and the keys that are used when storing them in the backend database. ([PR213](https://github.com/CrayLabs/SmartRedis/pull/213)) This change should not be visible to clients.

0.3.0

Release on Febuary 11, 2022

Description

- Improve error handling across all SmartRedis clients ([PR159](https://github.com/CrayLabs/SmartRedis/pull/159)) ([PR191](https://github.com/CrayLabs/SmartRedis/pull/191)) ([PR199](https://github.com/CrayLabs/SmartRedis/pull/199)) ([PR205](https://github.com/CrayLabs/SmartRedis/pull/205)) ([PR206](https://github.com/CrayLabs/SmartRedis/pull/206))
- Includes changes to C and Fortran function prototypes that are not backwards compatible
- Includes changes to error class names and enum type names that are not backwards compatible

- Add `poll_dataset` functionality to all SmartRedis clients ([PR184](https://github.com/CrayLabs/SmartRedis/pull/184))
- Due to other breaking changes made in this release, applications
using methods other than `poll_dataset` to check for the
existence of a dataset should now use `poll_dataset`

- Add environment variables to control client connection and command
timeout behavior ([PR194](https://github.com/CrayLabs/SmartRedis/pull/194))
- Add AI.INFO command to retrieve statistics on scripts and models
via Python and C++ clients ([PR197](https://github.com/CrayLabs/SmartRedis/pull/197))
- Create a Dockerfile for SmartRedis ([PR180](https://github.com/CrayLabs/SmartRedis/pull/180))
- Update `redis-plus-plus` version to 1.3.2 ([PR162](https://github.com/CrayLabs/SmartRedis/pull/162))
- Internal client performance and API improvements ([PR138](https://github.com/CrayLabs/SmartRedis/pull/138)) ([PR141](https://github.com/CrayLabs/SmartRedis/pull/141)) ([PR163](https://github.com/CrayLabs/SmartRedis/pull/163)) ([PR203](https://github.com/CrayLabs/SmartRedis/pull/203))
- Expose Redis `FLUSHDB`, `CONFIG GET`, `CONFIG SET`, and `SAVE`
commands to the Python client ([PR139](https://github.com/CrayLabs/SmartRedis/pull/139)) ([PR160](https://github.com/CrayLabs/SmartRedis/pull/160))
- Extend inverse CRC16 prefixing to all hash slots ([PR161](https://github.com/CrayLabs/SmartRedis/pull/161))
- Improve backend dataset representation to enable performance
optimization ([PR195](https://github.com/CrayLabs/SmartRedis/pull/195))
- Simplify SmartRedis build proccess ([PR189](https://github.com/CrayLabs/SmartRedis/pull/189))
- Fix zero-length array transfer in Fortran
`convert_char_array_to_c` ([PR170](https://github.com/CrayLabs/SmartRedis/pull/170))
- Add continuous integration for all SmartRedis tests ([PR165](https://github.com/CrayLabs/SmartRedis/pull/165)) ([PR173](https://github.com/CrayLabs/SmartRedis/pull/173)) ([PR177](https://github.com/CrayLabs/SmartRedis/pull/177))
- Update SmartRedis docstrings ([PR200](https://github.com/CrayLabs/SmartRedis/pull/200)) ([PR207](https://github.com/CrayLabs/SmartRedis/pull/207))
- Update SmartRedis documentation and examples ([PR202](https://github.com/CrayLabs/SmartRedis/pull/202)) ([PR208](https://github.com/CrayLabs/SmartRedis/pull/208)) ([PR210](https://github.com/CrayLabs/SmartRedis/pull/210))

0.2.0

Release on August, 9, 2021

Description

- Improved tensor memory management in the Python client ([PR70][PR70])
- Improved metadata serialization and removed protobuf dependency ([PR61][PR61])
- Added unit testing infrastructure for the C++ client ([PR96][PR96])
- Improve command execution fault handling ([PR65][PR65]) ([PR97][PR97]) ([PR105][PR105])
- Bug fixes ([PR52][PR52]) ([PR72][PR72]) ([PR76][PR76]) ([PR84][PR84])
- Added copy, rename, and delete tensor and DataSet commands in the Python client ([PR66][PR66])
- Upgrade to RedisAI 1.2.3 ([PR101][PR101])
- Fortran and C interface improvements ([PR93][PR93]) ([PR94][PR94]) ([PR95][PR95]) ([PR99][PR99])
- Add Redis INFO command execution to the Python client ([PR83][PR83])
- Add Redis CLUSTER INFO command execution to the Python client ([PR105][PR105])

[PR52]: https://github.com/CrayLabs/SmartRedis/pull/52
[PR61]: https://github.com/CrayLabs/SmartRedis/pull/61
[PR65]: https://github.com/CrayLabs/SmartRedis/pull/65
[PR66]: https://github.com/CrayLabs/SmartRedis/pull/66
[PR70]: https://github.com/CrayLabs/SmartRedis/pull/70
[PR72]: https://github.com/CrayLabs/SmartRedis/pull/72
[PR76]: https://github.com/CrayLabs/SmartRedis/pull/76
[PR83]: https://github.com/CrayLabs/SmartRedis/pull/83
[PR84]: https://github.com/CrayLabs/SmartRedis/pull/84
[PR93]: https://github.com/CrayLabs/SmartRedis/pull/93
[PR94]: https://github.com/CrayLabs/SmartRedis/pull/94
[PR95]: https://github.com/CrayLabs/SmartRedis/pull/95
[PR96]: https://github.com/CrayLabs/SmartRedis/pull/96
[PR97]: https://github.com/CrayLabs/SmartRedis/pull/97
[PR99]: https://github.com/CrayLabs/SmartRedis/pull/99
[PR101]: https://github.com/CrayLabs/SmartRedis/pull/101
[PR105]: https://github.com/CrayLabs/SmartRedis/pull/105

Page 2 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.