fiscalidade 0.1.0

Biblioteca Rust para geração, validação, assinatura de XMLs de Documentos Fiscais e transmissão com webservices da SEFAZ.
Documentation

fiscalidade

[WIP] Biblioteca Rust para geração, validação, assinatura de XMLs de Documentos Fiscais e transmissão com webservices da SEFAZ.

Exemplo

O exemplo abaixo mostra como obter o status do serviço de homologação para o Mato Grosso:

extern crate fiscalidade;

use std::{error, result};

use fiscalidade::{Ambiente, Dfe, Pkcs12Certificate, Uf, WebServicesIni};

fn main() -> result::Result<(), Box<dyn error::Error>> {
    let ini = WebServicesIni::from_file("resources/webservices.ini")?;
    let pkcs12 = Pkcs12Certificate::from_file("resources/certificado.pfx", "minha-senha-secreta")?;
    let dfe = Dfe::new().set_ini(ini).set_pkcs12(pkcs12);
    let xml = dfe.status_servico(Uf::Mt, Ambiente::Homologacao)?;
    println!("XML retornado: {}", String::from_utf8_lossy(xml.as_ref()));
    Ok(())
}

Uso

Adicione isto em seu Cargo.toml:

[dependencies]
fiscalidade = "0.1.0"

e isto em seu crate root:

extern crate fiscalidade;

Wishlist

  • status do serviço
  • consulta de cadastro
  • consulta de XML
  • configuração de webservices via arquivo INI
  • leitura de certificado P12
  • conexão segura usando biblioteca TLS padrão do sistema
  • configuração de timeout da conexão e da comunicação com o webservice
  • mais serviços como envio de lote, consulta de recibo, inutilização, distribuição de DFe, etc.
  • tentativas de comunicação com o webservice
  • validação e assinatura de XML
  • compressão no envio de lote
  • testes
  • documentação
  • mais exemplos
  • chamadas async
  • DANFE
  • geração de XML

Contribuições

Pull Requests e Issues são bem-vindos!

License

fiscalidade é distribuída sob qualquer uma das seguintes licenças: