Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
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.
Make sure redis-server is on your PATH. GitHub actions install this automatically.
export PATH=$PATH:<PATH_TO_REDIS>
You can either use pip install or the setup.py script
pip install ramp-packer
python setup.py install
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.
ramp pack <PATH_TO_RedisModule.so> -a <author> -e <email> -A <architecture> -d <description> -h <homepage> -l <license> -c <cmdargs> -r <redis-min-version>
Usage: ramp [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
pack
unpack
validate
version
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.
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 |
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)
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
FAQs
Packs for Redis modules into a distributable format
We found that ramp-packer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.