Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

simple-rlp

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

simple-rlp

RLP (Recursive Length Prefix) - Encode and decode data structures

  • 0.1.3
  • PyPI
  • Socket score

Maintainers
1

Simple RLP (Recursive Length Prefix)

Encode the and decode data structures simple and fast

This module is a alternative to official Ethereum pyrlp.

The pyrlp needs 5 dependencies. This alternative is write in pure python and don't have any dependencies. Recommended use for projects that don't need the Ethereum tools. If you already uses the Ethereum tools uses the pyrlp.

Features:
  • Very simple usage to encode and decode lists of data
  • Very fast to encode
  • Auto serialize python objects (check supported types)
  • Templates to convert bytes in decoded objects
  • No dependencies
Installation:
pip install simple-rlp 
Usage:
Encode:
>>> import rlp
>>> my_list = ['python', 'rlp', 255]
>>> rlp.encode(my_list)
b'\xcd\x86python\x83rlp\x81\xff'
Decode:
>>> import rlp
>>> my_list_encoded = b'\xcd\x86python\x83rlp\x81\xff'
>>> rlp.decode(my_list_encoded)
[b'python', b'rlp', b'\xff']

Use templates to decode and convert the bytes to python objects

Supported types:
  • Signed integer
  • Unsigned integer
  • Bool
  • Float
  • String
rlp.converters.UInteger # Signed integer
rlp.converters.SInteger # Unsigned integer
rlp.converters.Bool # Bool
rlp.converters.Float # Float
rlp.converters.String # String

Signed and unsigned integer uses by default big-endian order. If you need to use little-endian edit the static attribute:

LittleEndianUInt = rlp.converters.UInteger
LittleEndianUInt.byteorder =  'little'

String uses UTF-8 encoding by default if you need to use another then:

ASCIIString = rlp.converters.String
ASCIIString.encoding =  'ascii'
Template Usage:
>>> from rlp.converters import *
>>> import rlp

>>> my_list = ['rlp', 1024, 3.14159, True, b'\x08']
>>> my_list_template = [String, UInteger, Float, Bool, None]
>>> my_list_encoded = rlp.encode(my_list)
>>> rlp.decode(my_list_encoded, template=my_list_template)
['rlp', 1024, 3.141590118408203, True, b'\x08']

Note: Put None object to do nothing in template.

FAQs


Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc