Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/risoflora/fiscalidade
Biblioteca Rust para validação, assinatura e transmissão de XMLs para webservices SEFAZ.
https://github.com/risoflora/fiscalidade
dfe mdfe nfce nfe rust sefaz sped
Last synced: about 1 month ago
JSON representation
Biblioteca Rust para validação, assinatura e transmissão de XMLs para webservices SEFAZ.
- Host: GitHub
- URL: https://github.com/risoflora/fiscalidade
- Owner: risoflora
- License: apache-2.0
- Created: 2020-01-25T14:58:35.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-12-20T01:22:11.000Z (over 2 years ago)
- Last Synced: 2024-07-24T22:03:48.834Z (about 2 months ago)
- Topics: dfe, mdfe, nfce, nfe, rust, sefaz, sped
- Language: Rust
- Homepage:
- Size: 128 KB
- Stars: 27
- Watchers: 10
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# `fiscalidade`
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:```rust
use fiscalidade::{Ambiente, Dfe, Modelo, Pkcs12Certificate, Uf, WebServices};#[tokio::main]
async fn main() {
let webservices = WebServices::from_embedded().unwrap();
let pkcs12 = Pkcs12Certificate::from_file("resources/certificado.pfx", "minha-senha-secreta")
.await
.unwrap();
let dfe = Dfe::new().set_webservices(webservices).set_pkcs12(pkcs12);
let xml = dfe
.status_servico(Modelo::Nfe, Uf::Mt, Ambiente::Homologacao)
.await
.unwrap();
println!("XML retornado: {}", xml);
}
```## Uso
Adicione isto em seu `Cargo.toml`:
```toml
[dependencies]
tokio = { version = "1", features = ["full"] }
fiscalidade = "0.7"
```## _Wishlist_
- [x] Status do serviço
- [x] Consulta de cadastro
- [x] Consulta de XML
- [x] Leitura de certificado P12
- [x] Conexão segura usando biblioteca TLS _padrão_ do sistema
- [x] Configuração de _timeout_ da conexão e da comunicação com o webservice
- [x] Embutir arquivo de webservices na biblioteca
- [x] Verificar se recursos (envelope, URLs etc.) estão atualizados
- [x] Chamadas async
- [ ] Validação e assinatura de XML
- [ ] Implementar "health check"
- [ ] 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
- [ ] Proxy
- [ ] GitHub Actions
- [ ] DANFE## Contribuições
Pull Requests e Issues são sempre bem-vindos! =)
## Licença
`fiscalidade` é distribuída sob qualquer uma das seguintes licenças:
- [Apache License 2.0](LICENSE-APACHE)
- [MIT License](LICENSE-MIT)