Skip to main content

🦀🐍 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.

Metadata

Release files for rsfn4py 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rsfn4py 0.2.5
File Size Uploaded
rsfn4py-0.2.5.tar.gz 30.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for rsfn4py 0.2.5
File
rsfn4py-0.2.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
rsfn4py-0.2.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.12 CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 Details
rsfn4py-0.2.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
rsfn4py-0.2.5-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details
rsfn4py-0.2.5-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
rsfn4py-0.2.5-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details
rsfn4py-0.2.5-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details
rsfn4py-0.2.5-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.9 CPython 3.9 macOS 10.12+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64, macOS 10.12+ x86-64 Details
rsfn4py-0.2.5-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ ARM64 Details
rsfn4py-0.2.5-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.8 CPython 3.8 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details

Total release size: 5.0 MB

Release files / rsfn4py-0.2.5.tar.gz

Download URL rsfn4py-0.2.5.tar.gz
Size 30.9 kB
Tags Source
SHA-256 checksum
How to use checksums
68f89f7d121ebe0b4a004bea797d4a213ec82c83a77b5cf769e8ebe7e2eb7525
BLAKE2b-256 checksum
How to use checksums
fd808abe9cd8b29c3403224200be4a803b9d04a903b0853b9ee6fef0c81812fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp312-cp312-win_amd64.whl

Download URL rsfn4py-0.2.5-cp312-cp312-win_amd64.whl
Size 105.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
d8a9c71bb2a4d8f931662f14b0967ffcef03125bd54c546f0e9ab7e295e528c1
BLAKE2b-256 checksum
How to use checksums
61e60c1cbe36751f5d9890205f5aab81850e039dccdf89447aeebafa49f070e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 237.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
25918cb2a83416ff1c03868b5ed143549e4c551067d1798d0776e515036c2141
BLAKE2b-256 checksum
How to use checksums
d2ab563b566d000f1588fa5d76ec157608c4f6f61b264f6317bf5184b1cb5c0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rsfn4py-0.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 233.5 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8c02579f45422a4c891207cdc8cc84d665d996ecfeb7b106eebf9c9d2f882e2c
BLAKE2b-256 checksum
How to use checksums
07c1997b2f90727122fd5ee5659fd9ad656323ceaa4f98e3b3c8d2552e693533
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL rsfn4py-0.2.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 405.0 kB
Tags CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6c191db6368068598654d9d9a2b9840adaf960de9fa38c18038222a2d9ea7619
BLAKE2b-256 checksum
How to use checksums
7a440d134c411a4d8eea3001b6af8573883ed2929d938f1a22c8e6b49bb4289a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp311-cp311-win_amd64.whl

Download URL rsfn4py-0.2.5-cp311-cp311-win_amd64.whl
Size 107.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
a7bf730e0e286645ea767305c92596cfd8f3a079136ad26ce8b6f1d26f92b36f
BLAKE2b-256 checksum
How to use checksums
43467542a140055c79c2bdf7b82cc9ac9ea889b9bd91a5c095946df0bd5602a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 241.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b96e0157008820c42ecd520558cff4472273fb8bfbcd91ac7fd28bc6435b3039
BLAKE2b-256 checksum
How to use checksums
13fe92758f9b583ca2ff1d2c7dcf9bc27da44f507ca952c77144d4441d4e5586
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rsfn4py-0.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 236.9 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
53d1ab5b22baadb1eef3c0316155db6df07957ecf602aaf54300a0c0fa4aee54
BLAKE2b-256 checksum
How to use checksums
8be26aa651d0740d59f0ad6ca5461936d7a6e18fbdeab0c230c71e3f15b92499
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL rsfn4py-0.2.5-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 412.0 kB
Tags CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b1fe833823d9d7d4c0ff69ad67444c22fe28f30efc7724db5f3db33712cca095
BLAKE2b-256 checksum
How to use checksums
bd72aaf46fc851b9c352d719513d3c6d4bebcb44afee3a2505fed93e1ec30c5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp310-cp310-win_amd64.whl

Download URL rsfn4py-0.2.5-cp310-cp310-win_amd64.whl
Size 107.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
162600ca916d74a774169c5576231999418317a61cdbd3bc9b8e1e7828ce03e9
BLAKE2b-256 checksum
How to use checksums
43581cce361940efc9d0fa3a6dd80e1cd0b035eaf21eac02877e3676d5fb022f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 241.3 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
cdafed82422dd15d24070b1c1b14e7ed0b05d49f317639a7719a793dc058a0e6
BLAKE2b-256 checksum
How to use checksums
caf96f778d60d4007c117db06d842986307a61f5d9d04ada2602b2a6c2cfa67a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rsfn4py-0.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 237.1 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
b7e37a2fdad40a32a12def8d7649164a0974f20258d981c15c8d90d76ede8603
BLAKE2b-256 checksum
How to use checksums
81c27e08adabad5997eb214b9cd5b1919f9f811291e6961c1ed51f62f39af1d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL rsfn4py-0.2.5-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 412.3 kB
Tags CPython 3.10 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1deb160fab21a1a4d9fed360a4484abf1890bcebe8a26fa83f483a3860c17a4f
BLAKE2b-256 checksum
How to use checksums
1cb3a75c77a1e64230563ea4655d8332674413ecb24c402b0c6c6dd382367775
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp39-cp39-win_amd64.whl

Download URL rsfn4py-0.2.5-cp39-cp39-win_amd64.whl
Size 107.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
16bc67cd61b6eecd2443325d20cfe868c4d9f71559933eaf897eaf1a44190097
BLAKE2b-256 checksum
How to use checksums
c05ff03294c1007d31d9503cda7ca4824c918cf2c42c17056735a4e27f2105b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 241.8 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
50e0a1ef8d4385c83d9f37c27a2766d59286a489fe2ded8a9abfcffccf984d3b
BLAKE2b-256 checksum
How to use checksums
a09e99a51796a3d247a105d749a31e1b57d01004d71b3d41aab59e2d4943e5d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rsfn4py-0.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 237.7 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
7c2c2881bab600ec002154985640abaf6fe974255c5e53e2941fbff364940174
BLAKE2b-256 checksum
How to use checksums
9649a602fc8d97a92d232da10de648d79fe50b5d12396e07d5568aaf377ceae0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL rsfn4py-0.2.5-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 411.5 kB
Tags CPython 3.9 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
25fa61eb1d41c069c7ab2a3aafd10935827b30750cc9e7c28a3913e9d90b35ca
BLAKE2b-256 checksum
How to use checksums
f6eebb2d87b7b89ed0334f0052a3e0bc551b7a8ba09d676330bdd18c3e61f8a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp38-cp38-win_amd64.whl

Download URL rsfn4py-0.2.5-cp38-cp38-win_amd64.whl
Size 107.2 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
efc0cb7b28536a25632cc615272c6a6ce90222c6a84dabc75c84b03be7c183c7
BLAKE2b-256 checksum
How to use checksums
4bbc24c118e3817359156b5df79e5b230afa325043ab09ca9dfb875272c17764
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 242.2 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c99e3de3054ab4ecaaef708dc8cfadbbe38374657d3b7ff816bee158419b3fa9
BLAKE2b-256 checksum
How to use checksums
99ee027a85cfac279df08514e493c33e51c633e210fb5681714a7364b3a8dc5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rsfn4py-0.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 237.5 kB
Tags CPython 3.8 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
cb393cceb7be542bae21c2dfb6de1ef30fa532d1231ecf9f99a24701eed50061
BLAKE2b-256 checksum
How to use checksums
5e74a55e24bbc66d405794fa3be09d85e79b2561ffa5f3d3a190fa3d0006715b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release files / rsfn4py-0.2.5-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL rsfn4py-0.2.5-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 411.8 kB
Tags CPython 3.8 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
17e55f8d310d98ca06ca1b28b751ee503ed522d388cc3fdc75ce22e87eae9d1a
BLAKE2b-256 checksum
How to use checksums
b347e7aee6e49f9293c38dbdd8142958609e70181d237b106ccebdabac59a932
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.5 This release

21 release files

0.2.4

21 release files

0.2.3

21 release files

0.2.1

21 release files

0.2.0

21 release files

0.1.1

21 release files

0.1.0

21 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page