opensefaz-cli-0.1.0 is not a library.
OpenSefaz
SDK Rust para integração com os sistemas da SEFAZ (NF-e, NFC-e, CT-e)
🚀 Visão Geral
OpenSefaz é um SDK completo escrito em Rust para facilitar a integração com os sistemas da SEFAZ, proporcionando:
- Segurança: Aproveita as garantias de segurança de memória do Rust
- Performance: Código otimizado e eficiente
- Confiabilidade: Sistema de tipos forte previne erros em tempo de compilação
- Facilidade de uso: API intuitiva e bem documentada
📦 Instalação
Adicione ao seu Cargo.toml:
[]
= "0.1"
Ou instale a CLI:
🔧 Uso
Biblioteca
use ;
async
CLI
# Consultar NF-e
# Verificar status do serviço
# Validar XML
# Assinar XML
# Gerar chave de acesso
# Formatar documentos
🏗️ Arquitetura do Projeto
opensefaz/
├── opensefaz-rs/ # SDK principal
│ ├── src/
│ │ ├── lib.rs # Ponto de entrada
│ │ ├── error.rs # Tipos de erro
│ │ ├── config.rs # Configuração
│ │ ├── certificate.rs # Certificado digital
│ │ ├── nfe.rs # Cliente NF-e
│ │ ├── types.rs # Tipos de dados
│ │ └── utils.rs # Utilitários
│ └── Cargo.toml
├── opensefaz-cli/ # Interface de linha de comando
│ ├── src/
│ │ └── main.rs
│ └── Cargo.toml
└── Cargo.toml # Workspace
📚 Recursos Principais
Certificados Digitais
- Suporte a certificado A1 (PEM/PFX)
- Validação de validade
- Verificação de vencimento
NF-e (Nota Fiscal Eletrônica)
- Consulta por chave de acesso
- Consulta por protocolo
- Envio de lote
- Cancelamento
- Carta de correção
Validações
- Validação de CNPJ/CPF
- Validação de chave de acesso
- Validação de XML contra XSD
Utilitários
- Formatação de documentos
- Cálculo de dígito verificador
- Geração de números aleatórios
🔐 Segurança
- Assinatura digital com RSA
- Criptografia de dados sensíveis
- Comunicação HTTPS com TLS
- Validação de certificados
🧪 Testes
# Rodar todos os testes
# Testes com output
# Testes de um módulo específico
# Gerar coverage (requer cargo-tarpaulin)
🛠️ Desenvolvimento
Pré-requisitos
- Rust 1.75+
- OpenSSL (para alguns recursos)
Build
# Build do workspace
# Build em release
# Build da CLI
Features
sync: Suporte a API síncrona (padrão)async: Suporte a API assíncronaopenssl-vendored: Compila OpenSSL estaticamente
📖 Documentação
A documentação completa e interativa está disponível em:
- 📚 Documentação Completa - Guia completo com todos os detalhes
- 🌐 Site de Documentação - Para gerar com mdBook
- 📄 API Reference - Documentação gerada no docs.rs
- 💻 Exemplos - Código de exemplo
Tópicos da Documentação
- Introdução - Visão geral do projeto
- Instalação - Como instalar e configurar
- Guia de Uso - Tutoriais e exemplos práticos
- API Reference - Documentação completa da API
- CLI - Uso da interface de linha de comando
- Exemplos - Casos de uso reais
- FAQ - Perguntas frequentes
Gerar Site de Documentação
Para gerar um site de documentação interativo:
# Instalar mdBook
# Navegar para docs
# Gerar e visualizar
O site estará disponível em http://localhost:3000
🤝 Contribuindo
Contribuições são bem-vindas! Veja nosso Guia de Contribuição.
Como contribuir:
- Fork o projeto
- Crie uma branch (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -m 'Adiciona nova feature') - Push (
git push origin feature/nova-feature) - Abra um Pull Request
📄 Licença
Dual-licensed under:
- MIT License (LICENSE-MIT)
🔗 Links Úteis
⚠️ Aviso Importante
Este projeto está em desenvolvimento ativo. Use em produção com cautela e sempre valide os resultados. A SEFAZ pode alterar especificações sem aviso prévio.
📞 Suporte
- Issues: https://github.com/opensefaz/opensefaz/issues
- Discussões: https://github.com/opensefaz/opensefaz/discussions
OpenSefaz - Criando sistemas fiscais robustos com Rust 🦀