Skip to main content

High-performance Rust modules for Python applications.

Project description

🦀🐍 Rust Functions for Python (rsfn4py)

Run Tests Release Python Versions

Uma coleção de módulos de alta performance escritos em Rust para serem consumidos nativamente em projetos Python, focando em processamento rápido e baixo consumo de memória.

O primeiro módulo desta biblioteca traz validação de CNPJ (incluindo o novo formato alfanumérico da IN RFB 2.119/2022, válido a partir de julho de 2026) e CPF, processados em Rust e expostos para Python com foco em alto throughput.


🚀 Recursos

  • Performance Extrema: Algoritmos matemáticos e parsing de strings otimizados usando iterators do Rust.
  • Cobertura de Documentos Fiscais: Validação de CNPJ (numérico e alfanumérico) e CPF, com tratamento de máscara e entradas inválidas.
  • Novo Padrão RFB: Suporte nativo ao cálculo de DV (Dígito Verificador) do CNPJ utilizando a tabela ASCII, aceitando tanto os CNPJs antigos (somente números) quanto o novo formato alfanumérico.
  • Integração PyO3: A biblioteca é exportada como um C-Extension (cdylib), funcionando como um pacote Python comum sem necessidade de configurações complexas por parte de quem a utiliza.
  • Fallback em Python: Inclui a mesma implementação em Python puro para casos de teste, comparação ou ambientes restritos.

📦 Instalação

Você pode instalar o pacote diretamente via pip:

pip install rsfn4py

(O pacote já distribui wheels pré-compilados para Linux, macOS e Windows nas versões mais recentes do Python).


💻 Como Usar

O uso é idêntico a qualquer outra biblioteca Python. As funções de validação limpam a entrada e aplicam o cálculo de DV para cada documento.

from rsfn4py import (
	validate_cnpj_rust,
	validate_cnpj_python,
	validate_cpf_rust,
	validate_cpf_python,
)

cnpj_valido = "12.345.678/0001-95"
novo_cnpj_alfanumerico = "12ABC34501DE35"
cnpj_invalido = "11.111.111/1111-11"

cpf_valido = "529.982.247-25"
cpf_invalido = "111.111.111-11"

# Validação ultra-rápida em Rust (Recomendado para produção)
print(validate_cnpj_rust(cnpj_valido))           # Saída: True
print(validate_cnpj_rust(novo_cnpj_alfanumerico))  # Saída: True
print(validate_cnpj_rust(cnpj_invalido))         # Saída: False

# Implementação em Python puro (Para comparação ou fallback)
print(validate_cnpj_python(cnpj_valido))         # Saída: True

# CPF em Rust e Python
print(validate_cpf_rust(cpf_valido))             # Saída: True
print(validate_cpf_rust(cpf_invalido))           # Saída: False
print(validate_cpf_python(cpf_valido))           # Saída: True

🪪 Validação de CPF

O CPF (Cadastro de Pessoas Físicas) é o documento de identificação fiscal de pessoas físicas no Brasil, composto por 11 dígitos numéricos, sendo os dois últimos dígitos verificadores.

Exemplos de uso

from rsfn4py import validate_cpf_rust, validate_cpf_python

# Aceita entrada com ou sem máscara (pontos e traço)
validate_cpf_rust("529.982.247-25")  # True  — CPF válido com máscara
validate_cpf_rust("52998224725")     # True  — CPF válido sem máscara
validate_cpf_rust("529.982.247-26")  # False — Dígito verificador inválido
validate_cpf_rust("111.111.111-11")  # False — Sequência conhecidamente inválida

# Fallback em Python puro
validate_cpf_python("529.982.247-25")  # True

Algoritmo de validação do CPF

  1. Remove a máscara (pontos e traço), ficando com 11 dígitos.
  2. Rejeita sequências com todos os dígitos iguais (ex.: 111.111.111-11).
  3. Primeiro dígito verificador: multiplica os 9 primeiros dígitos pelos pesos 10 a 2, soma os produtos, calcula o resto da divisão por 11 e aplica a regra: resto < 2 → dígito = 0, senão dígito = 11 − resto.
  4. Segundo dígito verificador: repete o processo com os 10 primeiros dígitos e pesos 11 a 2.
  5. Compara os dígitos calculados com os dois últimos da entrada.

🏢 Validação de CNPJ

O CNPJ (Cadastro Nacional da Pessoa Jurídica) é o documento de identificação fiscal de empresas no Brasil. Possui 14 caracteres, sendo os dois últimos dígitos verificadores.

A partir de julho de 2026, a Receita Federal passa a emitir CNPJs no novo formato alfanumérico (IN RFB 2.119/2022). Esta biblioteca suporta ambos os formatos simultaneamente.

Exemplos de uso

from rsfn4py import validate_cnpj_rust, validate_cnpj_python

# Formato numérico tradicional — com e sem máscara
validate_cnpj_rust("12.345.678/0001-95")   # True  — CNPJ numérico com máscara
validate_cnpj_rust("12345678000195")        # True  — CNPJ numérico sem máscara
validate_cnpj_rust("11.111.111/1111-11")   # False — Sequência inválida

# Novo formato alfanumérico (IN RFB 2.119/2022, a partir de julho de 2026)
validate_cnpj_rust("12ABC34501DE35")        # True  — Exemplo oficial SERPRO sem máscara
validate_cnpj_rust("12.ABC.345/01DE-35")   # True  — Exemplo oficial SERPRO com máscara

# Fallback em Python puro
validate_cnpj_python("12.345.678/0001-95") # True

Estrutura do CNPJ

Posições Conteúdo Formato antigo Novo formato (jul/2026)
1–8 Raiz (empresa) Numérico Alfanumérico
9–12 Ordem (filial) Numérico Alfanumérico
13–14 Dígitos verificadores Numérico Numérico

Os CNPJs existentes (apenas numéricos) permanecem válidos. O formato alfanumérico será emitido somente para novas inscrições a partir de julho de 2026. Os dois formatos coexistirão indefinidamente.

Algoritmo de validação do CNPJ (numérico e alfanumérico)

O cálculo dos dígitos verificadores segue o algoritmo oficial do SERPRO, adaptado para suportar letras:

  1. Remove a máscara (pontos, barra e traço).
  2. Converte cada caractere para seu valor numérico: dígitos valem seu próprio valor (0–9); letras valem seu código ASCII menos 48 (A=10, B=11, …, Z=35).
  3. Primeiro dígito verificador: aplica os pesos [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] sobre os 12 primeiros caracteres convertidos. Soma os produtos, calcula o resto da divisão por 11: resto < 2 → dígito = 0, senão dígito = 11 − resto.
  4. Segundo dígito verificador: aplica os pesos [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] sobre os 12 primeiros caracteres convertidos mais o primeiro dígito calculado. Mesma regra de resto.
  5. Compara os dígitos calculados com os dois últimos da entrada.

Exemplo de cálculo — CNPJ alfanumérico 12ABC34501DE35 (SERPRO)

Conversão dos caracteres (12ABC34501DE):

Char 1 2 A B C 3 4 5 0 1 D E
Valor 1 2 10 11 12 3 4 5 0 1 13 14

Primeiro dígito verificador:

Pesos 5 4 3 2 9 8 7 6 5 4 3 2
Produto 5 8 30 22 108 24 28 30 0 4 39 28

Somatório: 459 → Resto de 459 ÷ 11 = 8 → Dígito = 11 − 8 = 3

Segundo dígito verificador:

Pesos 6 5 4 3 2 9 8 7 6 5 4 3 2
(inclui o primeiro dígito 3 na última posição)

Somatório: 424 → Resto de 424 ÷ 11 = 6 → Dígito = 11 − 6 = 5

Resultado: 12.ABC.345/01DE-35


⚡ Benchmark

Executando make bench com 100.000 validações por cenário (CPF e CNPJ), os resultados recentes foram:

Análise 1: Tempo de execução (s)

Documento Python Rust
CNPJ 0,684318s 0,063321s
CPF 0,713108s 0,039088s

Análise 2: Throughput (validações/segundo)

Documento Python Rust
CNPJ 146.131/s 1.579.264/s
CPF 140.231/s 2.558.310/s

Speedup Rust sobre Python

Documento Ganho
CNPJ 10,81x
CPF 18,24x

🛠️ Setup Local e Desenvolvimento

Se você deseja clonar o repositório para contribuir ou adicionar novos serviços em Rust, siga o passo a passo abaixo.

Pré-requisitos

1. Preparando o Ambiente

Clone o repositório e crie um ambiente virtual (venv):

git clone https://github.com/Desbravando-Rust/rsfn4py.git
cd rsfn4py

python -m venv .venv
source .venv/bin/activate  # No Windows use: .venv\Scripts\activate

2. Instalando Dependências de Build

Utilizamos o Maturin como build system para compilar o código Rust e linká-lo ao Python.

pip install -U pip pytest maturin

3. Compilando o Código Rust Localmente

Para compilar o módulo C-Extension de forma transparente e já instalá-lo no seu .venv, basta rodar:

maturin develop --release

O parâmetro --release aplica as otimizações completas do compilador Rust. Se omitido, a compilação será mais rápida, porém a execução será mais lenta (modo debug).

4. Executando os Testes

Com os bindings instalados localmente, execute o pytest para validar o comportamento do módulo nativo contra os casos de teste:

pytest -v tests/

5. Executando Benchmark (CPF + CNPJ)

O projeto possui um alvo pronto no Makefile para comparar implementacoes Rust (PyO3) e Python puro nas validacoes de CPF e CNPJ, com duas analises:

  1. Tempo de execucao total.
  2. Throughput (validacoes por segundo).

Execucao padrao (100.000 validacoes por cenario):

make bench

Executar com outro volume:

make bench TOTAL_VALIDACOES=500000

Exemplo de saida:

Benchmark CPF/CNPJ - Rust vs Python
Total de validacoes por cenario: 100000

Analise 1: Tempo de execucao (s)
--------------------------------
Documento | Implementacao | Tempo (s)
----------+---------------+----------
CNPJ      | Python        | 0,684318
CNPJ      | Rust          | 0,063321
CPF       | Python        | 0,713108
CPF       | Rust          | 0,039088

Analise 2: Throughput (validacoes/segundo)
------------------------------------------
Documento | Implementacao | Throughput
----------+---------------+-----------
CNPJ      | Python        | 146.131
CNPJ      | Rust          | 1.579.264
CPF       | Python        | 140.231
CPF       | Rust          | 2.558.310

📄 Licença

Este projeto está sob a licença MIT. Sinta-se livre para usá-lo, modificá-lo e distribuí-lo. Veja o arquivo LICENSE para mais detalhes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rsfn4py-0.2.5.tar.gz (30.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rsfn4py-0.2.5-cp312-cp312-win_amd64.whl (105.0 kB view details)

Uploaded CPython 3.12Windows x86-64

rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (237.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (233.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rsfn4py-0.2.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (405.0 kB view details)

Uploaded CPython 3.12macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsfn4py-0.2.5-cp311-cp311-win_amd64.whl (107.0 kB view details)

Uploaded CPython 3.11Windows x86-64

rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (241.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (236.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rsfn4py-0.2.5-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (412.0 kB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsfn4py-0.2.5-cp310-cp310-win_amd64.whl (107.1 kB view details)

Uploaded CPython 3.10Windows x86-64

rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (241.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (237.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

rsfn4py-0.2.5-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (412.3 kB view details)

Uploaded CPython 3.10macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsfn4py-0.2.5-cp39-cp39-win_amd64.whl (107.1 kB view details)

Uploaded CPython 3.9Windows x86-64

rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (241.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (237.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

rsfn4py-0.2.5-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (411.5 kB view details)

Uploaded CPython 3.9macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsfn4py-0.2.5-cp38-cp38-win_amd64.whl (107.2 kB view details)

Uploaded CPython 3.8Windows x86-64

rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (242.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (237.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

rsfn4py-0.2.5-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (411.8 kB view details)

Uploaded CPython 3.8macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file rsfn4py-0.2.5.tar.gz.

File metadata

  • Download URL: rsfn4py-0.2.5.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rsfn4py-0.2.5.tar.gz
Algorithm Hash digest
SHA256 68f89f7d121ebe0b4a004bea797d4a213ec82c83a77b5cf769e8ebe7e2eb7525
MD5 ed94e9c4cca4b7d1303399b80ebecac3
BLAKE2b-256 fd808abe9cd8b29c3403224200be4a803b9d04a903b0853b9ee6fef0c81812fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5.tar.gz:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rsfn4py-0.2.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 105.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rsfn4py-0.2.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d8a9c71bb2a4d8f931662f14b0967ffcef03125bd54c546f0e9ab7e295e528c1
MD5 831db7f6a9cf50c609150ead1cce9e7d
BLAKE2b-256 61e60c1cbe36751f5d9890205f5aab81850e039dccdf89447aeebafa49f070e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp312-cp312-win_amd64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 25918cb2a83416ff1c03868b5ed143549e4c551067d1798d0776e515036c2141
MD5 32f0be83860fe492d615e3acf86b36b4
BLAKE2b-256 d2ab563b566d000f1588fa5d76ec157608c4f6f61b264f6317bf5184b1cb5c0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8c02579f45422a4c891207cdc8cc84d665d996ecfeb7b106eebf9c9d2f882e2c
MD5 08b6df87bb2f49e30407cac473dc4d4b
BLAKE2b-256 07c1997b2f90727122fd5ee5659fd9ad656323ceaa4f98e3b3c8d2552e693533

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 6c191db6368068598654d9d9a2b9840adaf960de9fa38c18038222a2d9ea7619
MD5 89d5d05f671df8298230f42ffb411b95
BLAKE2b-256 7a440d134c411a4d8eea3001b6af8573883ed2929d938f1a22c8e6b49bb4289a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rsfn4py-0.2.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 107.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rsfn4py-0.2.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a7bf730e0e286645ea767305c92596cfd8f3a079136ad26ce8b6f1d26f92b36f
MD5 6cf46251e8b2a2ba0a21eaa3d1cab781
BLAKE2b-256 43467542a140055c79c2bdf7b82cc9ac9ea889b9bd91a5c095946df0bd5602a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp311-cp311-win_amd64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b96e0157008820c42ecd520558cff4472273fb8bfbcd91ac7fd28bc6435b3039
MD5 433b10e228dcf2aa9a9518963c8cc2ee
BLAKE2b-256 13fe92758f9b583ca2ff1d2c7dcf9bc27da44f507ca952c77144d4441d4e5586

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 53d1ab5b22baadb1eef3c0316155db6df07957ecf602aaf54300a0c0fa4aee54
MD5 0f6b14f7080484dad6a6add724660ea6
BLAKE2b-256 8be26aa651d0740d59f0ad6ca5461936d7a6e18fbdeab0c230c71e3f15b92499

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 b1fe833823d9d7d4c0ff69ad67444c22fe28f30efc7724db5f3db33712cca095
MD5 cdecaa06135f38e0e70b38e7a8b406f0
BLAKE2b-256 bd72aaf46fc851b9c352d719513d3c6d4bebcb44afee3a2505fed93e1ec30c5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rsfn4py-0.2.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 107.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rsfn4py-0.2.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 162600ca916d74a774169c5576231999418317a61cdbd3bc9b8e1e7828ce03e9
MD5 61b21c64068f8a647dd9ddc8dc959d2a
BLAKE2b-256 43581cce361940efc9d0fa3a6dd80e1cd0b035eaf21eac02877e3676d5fb022f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp310-cp310-win_amd64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cdafed82422dd15d24070b1c1b14e7ed0b05d49f317639a7719a793dc058a0e6
MD5 665e2dcc42afa87eb93da262239b3599
BLAKE2b-256 caf96f778d60d4007c117db06d842986307a61f5d9d04ada2602b2a6c2cfa67a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b7e37a2fdad40a32a12def8d7649164a0974f20258d981c15c8d90d76ede8603
MD5 d55f40ae5c7829373751921d5c2cfc4e
BLAKE2b-256 81c27e08adabad5997eb214b9cd5b1919f9f811291e6961c1ed51f62f39af1d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 1deb160fab21a1a4d9fed360a4484abf1890bcebe8a26fa83f483a3860c17a4f
MD5 da9ef0fa6b1d754c239ff2cc0ee70963
BLAKE2b-256 1cb3a75c77a1e64230563ea4655d8332674413ecb24c402b0c6c6dd382367775

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: rsfn4py-0.2.5-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 107.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rsfn4py-0.2.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 16bc67cd61b6eecd2443325d20cfe868c4d9f71559933eaf897eaf1a44190097
MD5 61e47ee69eaa5f8cc7be4fa6017188c2
BLAKE2b-256 c05ff03294c1007d31d9503cda7ca4824c918cf2c42c17056735a4e27f2105b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp39-cp39-win_amd64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50e0a1ef8d4385c83d9f37c27a2766d59286a489fe2ded8a9abfcffccf984d3b
MD5 3746f2ef6f98f9e7e32574b0e0fac9bc
BLAKE2b-256 a09e99a51796a3d247a105d749a31e1b57d01004d71b3d41aab59e2d4943e5d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7c2c2881bab600ec002154985640abaf6fe974255c5e53e2941fbff364940174
MD5 ad6be658cb08db4fd5e485e3285d1304
BLAKE2b-256 9649a602fc8d97a92d232da10de648d79fe50b5d12396e07d5568aaf377ceae0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 25fa61eb1d41c069c7ab2a3aafd10935827b30750cc9e7c28a3913e9d90b35ca
MD5 ce3babb81af3188956d0a0b1e004dcdb
BLAKE2b-256 f6eebb2d87b7b89ed0334f0052a3e0bc551b7a8ba09d676330bdd18c3e61f8a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: rsfn4py-0.2.5-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 107.2 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rsfn4py-0.2.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 efc0cb7b28536a25632cc615272c6a6ce90222c6a84dabc75c84b03be7c183c7
MD5 e29420d32d60598c991dd6228ec2823c
BLAKE2b-256 4bbc24c118e3817359156b5df79e5b230afa325043ab09ca9dfb875272c17764

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp38-cp38-win_amd64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c99e3de3054ab4ecaaef708dc8cfadbbe38374657d3b7ff816bee158419b3fa9
MD5 482067d24b0dea61f15ec615f2eee841
BLAKE2b-256 99ee027a85cfac279df08514e493c33e51c633e210fb5681714a7364b3a8dc5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cb393cceb7be542bae21c2dfb6de1ef30fa532d1231ecf9f99a24701eed50061
MD5 b0c8491c8144d32229e6b0f614c6f2c8
BLAKE2b-256 5e74a55e24bbc66d405794fa3be09d85e79b2561ffa5f3d3a190fa3d0006715b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rsfn4py-0.2.5-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsfn4py-0.2.5-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 17e55f8d310d98ca06ca1b28b751ee503ed522d388cc3fdc75ce22e87eae9d1a
MD5 1bc06f5464b56e80b0ce54cb6ac13f26
BLAKE2b-256 b347e7aee6e49f9293c38dbdd8142958609e70181d237b106ccebdabac59a932

See more details on using hashes here.

Provenance

The following attestation bundles were made for rsfn4py-0.2.5-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on Desbravando-Rust/rsfn4py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page