fiscalidade 0.5.1

Biblioteca Rust para validação, assinatura e transmissão de XMLs para webservices SEFAZ.
Documentation

fiscalidade

[WIP] Biblioteca Rust para validação, assinatura e transmissão de XMLs para webservices SEFAZ.

Exemplo

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

extern crate anyhow;
extern crate fiscalidade;

use fiscalidade::{Ambiente, Dfe, Pkcs12Certificate, Tipo, Uf, WebServices};

#[tokio::main(flavor = "current_thread")]
async fn main() -> anyhow::Result<()> {
    let webservices = WebServices::from_embedded()?;
    let pkcs12 =
        Pkcs12Certificate::from_file("resources/certificado.pfx", "minha-senha-secreta").await?;
    let dfe = Dfe::new(Tipo::Nfe)
        .set_webservices(webservices)
        .set_pkcs12(pkcs12);
    let xml = dfe.status_servico(Uf::Mt, Ambiente::Homologacao).await?;
    println!("XML retornado: {}", xml);
    Ok(())
}

Uso

Adicione isto em seu Cargo.toml:

[dependencies]
tokio = { version = "1", features = ["macros"] }
fiscalidade = "0.5"

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
  • embutir arquivo de webservices na biblioteca
  • atualização de webservices (webservices.ini)
  • verificar se recursos (envelope, URLs etc.) estão atualizados
  • chamadas async
  • validação e assinatura de XML
  • adicionar exemplo de consulta de cadastro
  • tentativas de comunicação com o webservice
  • mais serviços como envio de lote, consulta de recibo, inutilização, distribuição de DFe, etc.
  • compressão no envio de lote
  • testes
  • documentação
  • mais exemplos
  • DANFE
  • GitHub Actions

Contribuições

Pull Requests e Issues são sempre bem-vindos! =)

Licença

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