Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Remove async_trait dependency: async fn in traits is stable since Rust 1.75

Aberta
#125 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
50/100
Tipo de issue
Refatoração
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
rust
Domínio
backend

Direção de pesquisa

Start by checking the DataFusion TableProvider trait definition and the PrunableStreamingTable implementation in src/lib.rs, then inspect the [dependencies] section of Cargo.toml. Confirm whether the trait uses native async fn; done means removing the attribute and dependency if compatible, then verifying with cargo test.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement

Problem

Cargo.toml includes async-trait = '0.1' and src/lib.rs uses #[async_trait] on the TableProvider impl for PrunableStreamingTable.

The async_trait proc-macro crate was a workaround before Rust 1.75 (December 2023), which stabilized async fn in traits (RPITIT). The proc-macro generates less efficient code — it heap-allocates a Box<dyn Future> for each async call — whereas native async fn in traits avoids this overhead.

Steps

  1. Check whether the DataFusion TableProvider trait definition already uses native async fn (it should in recent versions).
  2. If so, remove the #[async_trait] attribute from the PrunableStreamingTable impl.
  3. Remove async-trait from Cargo.toml [dependencies].
  4. Verify with cargo test that nothing breaks.

Benefit

Reduces dependency count and eliminates unnecessary heap allocations in the async execution path.

Linguagem predominante
Python
Estrelas
142
Forks
19
Merge médio
1d 9h
PRs com merge (30d)
9

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de xqlsystems/xarray-sql

Todas as issues de xqlsystems/xarray-sql

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.