Parsing de NF-e simplificado
Biblioteca Rust de alto desempenho para parsing e serialização de Nota Fiscal Eletrônica brasileira. Suporte ao Layout 4.00 da SEFAZ.
nfe = "0.1.0"
Funcionalidades
Tudo que você precisa para trabalhar com NF-e em Rust
Alto Desempenho
Parsing e serialização extremamente rápidos graças ao quick-xml e otimizações do Rust.
Type-Safe
Tipagem forte com enums para todos os campos codificados, prevenindo erros em tempo de compilação.
Layout 4.00
Suporte completo ao layout 4.00 da NF-e conforme especificação da SEFAZ.
Serialização
Converta facilmente entre estruturas Rust e XML válido para transmissão à SEFAZ.
Modelos Completos
Suporte a NF-e (modelo 55) e NFC-e (modelo 65) com todas as estruturas necessárias.
Bem Testado
Cobertura de testes abrangente para garantir a conformidade com o padrão da SEFAZ.
Fácil de Usar
Parse de XML de NF-e em poucas linhas de código. A biblioteca cuida de toda a complexidade do XML para você.
Acesse todos os campos da nota fiscal através de structs Rust bem tipadas e documentadas.
- Parse de arquivos XML
- Parse de strings XML
- Serialização para XML
- Validação automática de tipos
- Tratamento de erros robusto
use std::fs::File; use std::convert::TryFrom; use nfe::{Nfe, ModeloDocumentoFiscal}; fn main() -> Result<(), Box<dyn std::error::Error>> { // Parse de arquivo XML let file = File::open("nota.xml")?; let nfe = Nfe::try_from(file)?; // Acessar dados da nota println!("Chave: {}", nfe.chave_acesso); println!("Emitente: {:?}", nfe.emit.razao_social); println!("Total: {}", nfe.totais.valor_total); // Verificar modelo match nfe.ide.modelo { ModeloDocumentoFiscal::Nfe => { println!("NF-e modelo 55"); } ModeloDocumentoFiscal::Nfce => { println!("NFC-e modelo 65"); } } Ok(()) }
Estruturas Disponíveis
Todas as estruturas da NF-e mapeadas para Rust