Packs for Redis modules into a distributable format
Project description
RAMP
Redis Automatic Module Packaging
Similar to npm init
, this packer bundles Redis Modules for later distribution.
It gathers information from modules e.g. module's name, command list, version and additional metadata.
Prerequisites
Make sure redis-server is on your PATH. GitHub actions install this automatically.
export PATH=$PATH:<PATH_TO_REDIS>
Install
You can either use pip install or the setup.py script
pip install ramp-packer
python setup.py install
Usage
Manifest mode
ramp pack <PATH_TO_RedisModule.so> -m <PATH_TO_Manifest.yml>
manifest.yml should specify your module's attributes, the ones you would specify manualy if you were to use the Command line mode, see Full usage options and manifest.yml for a reference.
Command line mode
ramp pack <PATH_TO_RedisModule.so> -a <author> -e <email> -A <architecture> -d <description> -h <homepage> -l <license> -c <cmdargs> -r <redis-min-version>
Full usage options
Usage: ramp [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
pack
unpack
validate
version
Packing
Usage: ramp pack [OPTIONS] MODULE
Options:
-o, --output TEXT output file name
-v, --verbose verbose mode: print the resulting metadata
-m, --manifest FILENAME generate package from manifest
-d, --display-name TEXT name for display purposes
-a, --author TEXT module author
-e, --email TEXT authors email
-A, --architecture TEXT module compiled on i386/x86_64 arch
-D, --description TEXT short description
-h, --homepage TEXT module homepage
-l, --license TEXT license
-c, --cmdargs TEXT module command line arguments
-r, --redis-min-version TEXT redis minimum version
-R, --redis-pack-min-version TEXT
redis pack minimum version
-cc, --config-command TEXT command to configure module at run time
-O, --os TEXT build target OS (Darwin/Linux)
-C, --capabilities TEXT comma seperated list of module capabilities
--help Show this message and exit.
Module Capabilities
Following is a list of capabilities which can be specified for a module
capability | description |
---|---|
types | module has its own types and not only operate on existing redis types |
no_multi_key | module has no methods that operate on multiple keys |
replica_of | module can work with replicaof capability when it is loaded into a source or a destination database |
backup_restore | module can work with import/export capability |
eviction_expiry | module is able to handle eviction and expiry without an issue |
reshard_rebalance | module is able to operate in a database that is resharded and rebalanced |
failover_migrate | module is able to operate in a database that is failing over and migrating |
persistence_aof | module is able to operate in a database when database chooses AOF persistence option |
persistence_rdb | module is able to operate in a database when database chooses SNAPSHOT persistence option |
hash_policy | module is able to operate in a database with a user defined HASH POLICY |
flash | module is able to operate in a database with Flash memory is enabled or changed over time |
crdb | module is able to operate in a database with crdt for the default redis data types |
clustering | module is able to operate in a database that is sharded and shards can be migrated |
intershard_tls | module supports two-way encrypted communication between shards |
intershard_tls_pass | module supports intershard_tls which requires password |
ipv6 | module supports ipv6 communication between shards |
Output
ramp pack generates module.zip
Which contains:
1. RedisModule.so - original module
2. Module.json - module's metadata
3. deps/ - a dir with bundle dependencies (optional)
Test
Make sure redis-server is on your PATH
export PATH=$PATH:<PATH_TO_REDIS>
Install RAMP
python setup.py install
Compile RedisGraph for your OS v1.0.12 (https://github.com/RedisLabsModules/RedisGraph/tree/v1.0.12)
Copy redisgraph.so
in test_module
directory in the root of this project.
Run tests
python test.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ramp_packer-2.5.12.tar.gz
.
File metadata
- Download URL: ramp_packer-2.5.12.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.7.17 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01179fc1fc1e5b43fdd10ff5aa38328057f003121d381309c6fd6e75dbc4256e |
|
MD5 | fd4b20ff0e9504c930909fe881f21417 |
|
BLAKE2b-256 | a00a2999140fde708772beb8aa8156436077f8c6fa79d7b4182020cb172063ab |
File details
Details for the file ramp_packer-2.5.12-py3-none-any.whl
.
File metadata
- Download URL: ramp_packer-2.5.12-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.7.17 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00f4acc6896740ca3bcc6531da3c43e217eb24e414c17a0ba4a517447662f613 |
|
MD5 | b923dc4a0004aa2210cd6f94bbe9be35 |
|
BLAKE2b-256 | c2eea1748089f5ceec82f46133011580c5d8f28c097d6726a117c2f03c3c861c |