New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

unrar2-cffi

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

unrar2-cffi

Read RAR file from python -- cffi edition

  • 0.4.0
  • PyPI
  • Socket score

Maintainers
1

Build

unrar2-cffi -- Work with RAR files.

Description

unrar2-cffi is a python extension that exposes unrar library functionality through a zipfile-like interface.

This is a fork/modified version of unrar-cffi that supports modern Python starting from 3.9+

This build also target unrar 7.x instead of unrar 5.x from the original unrar-cffi project.

Difference

This packages has some difference to the original one:

  • Added typing information
  • Added __slots__ to improve performance a bit.
  • Moved all the RarInfo into at-property data
    • Now you can access the raw header data by using file._header
  • Added docstring to most functions.
  • Implement RarFile.printdir()

Features

The package implements the following RarFile functions:

  • namelist()
  • infolist()
  • getinfo()
  • read()
  • open()
  • testrar()
  • rarfile.is_rar_file()

Usage

  1. Install with PIP:

    pip install unrar2-cffi

  2. Use from code:

from unrar.cffi import rarfile

rar = rarfile.RarFile('sample.rar')

assert rar.testrar() == None

for filename in rar.namelist():
    info = rar.getinfo(filename)
    print("Reading {}, {}, {} bytes ({} bytes compressed)".format(info.filename, info.date_time, info.file_size, info.compress_size))
    data = rar.read(filename)
    print("\t{}...\n".format(data[:100]))

Build

Requirements

Linux/macOS:

  • gcc compiler suite (build-essential packages should be enough)
  • docker (only for buildmanylinux)

Windows:

  • VS2022 Build Tools (PLATFORM_TOOLSET=v143)
  • Visual C++ compiler suite
  • vswhere

Compile and test

  1. ./build.sh init
  2. ./build.sh build
  3. ./build.sh test

If you have docker installed, you can build all the manylinux wheels:

  1. ./build.sh within [manylinux docker image] buildmanylinux
  2. ./build.sh within [manylinux docker image] testmanylinux

By deafult the image quay.io/pypa/manylinux2010_x86_64 will be used. Use $DOCKER_IMAGE and $PLAT variables to customize the build.

Problems

Windows:

  • If you need to retarget solution, apply the 0001-build-retarget-to-vs2022-10.0-v143.patch that will utilize the latest version.

macOS:

  • The macOS version are monkeypatching unrar 6.x makefile to utilize C++11

Keywords

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