Skip to content

Releases: HashLoad/horse

3.3.5

Choose a tag to compare

@regyssilveira regyssilveira released this 10 Sep 01:47
f3821dd

Destaques

  • Corrige a compilação do provider padrão no FPC 3.3.1+ para Windows, eliminando o bloco var vazio produzido pelos condicionais de plataforma.
  • Aplica TCP_NODELAY aos sockets aceitos no FPC/Windows por meio de WinSock2.setsockopt, evitando a interação entre Nagle e delayed ACK nas conexões HTTP/1.1 keep-alive reutilizadas (#565, #566).
  • Adiciona ao CI um teste de regressão real para WebSocket no provider FPC/epoll, cobrindo EAGAIN, conexão ociosa, envio posterior de frame e encerramento abrupto (#564).
  • Atualiza a versão interna e o manifesto Boss para 3.3.5.

Validação

  • 74/74 combinações de compilação aprovadas em Delphi 10, 11, 12, 13 e FPC/Linux.
  • 24/24 combinações DUnitX aprovadas; o cenário Delphi 11/HttpSys que apresentou uma instabilidade transitória passou 207/207 no rerun isolado.
  • Regressão WebSocket FPC 3.2.2/epoll: 5/5 verificações aprovadas no Docker.
  • FPC trunk 3.3.1/Linux: keep-alive com mediana de 0,153 ms e p95 de 0,274 ms.
  • FPC trunk 3.3.1/Win64: compilação cruzada, execução nativa no Windows e keep-alive com mediana de 0,249 ms e p95 de 0,384 ms.

Changelog completo: 3.3.4...3.3.5

3.3.4

Choose a tag to compare

@regyssilveira regyssilveira released this 04 Sep 17:15
1221a27

Destaques

  • Corrige a latência de aproximadamente 44 ms em conexões HTTP/1.1 keep-alive no provider padrão do FPC 3.3.1, aplicando TCP_NODELAY sem substituir handlers customizados ou TLS.
  • Adiciona teste de regressão TCP real no FPC 3.3.1 e mantém compatibilidade com FPC 3.2.2.
  • Corrige o roteamento HttpSys quando um parâmetro contém barra percent-encoded (%2F).
  • Restaura o fallback de ContentStream nos adapters self-hosted sem acoplar adapters a Apache, CGI ou ISAPI.
  • Atualiza a versão interna do Horse e o manifesto Boss para 3.3.4.

Outras mudanças desde 3.3.3

  • Roteamento UTF-8 e semântica de paths codificados reforçados (#556).
  • Seleção e ciclo de vida do provider nghttp2 ajustados (#555).
  • Tratamento correto de EAGAIN e fechamento concorrente no WebSocket/Epoll (#549).
  • Isolamento de adapters brutos em módulos Apache (#560).
  • Matriz de compilação e limpeza da suíte de testes estabilizadas (#563).

Validação

  • 74/74 combinações de compilação aprovadas em Delphi 10, 11, 12, 13 e FPC/Linux.
  • 24/24 suítes DUnitX aprovadas em Default, Radix, HttpSys e IOCP.
  • Integração FPC 3.2.2 e regressão WebSocket/Epoll aprovadas.
  • Regressão FPC 3.3.1: mediana keep-alive de 0,088 ms (antes, aproximadamente 44 ms).

Changelog completo: 3.3.3...3.3.4

3.3.3

Choose a tag to compare

@viniciussanchez viniciussanchez released this 04 Sep 10:38

What's Changed

  • feat: Res.Send(S) now writes stream bytes to the response body by @freitasjca in #540
  • Fix IOCP connection context lifetime by @regyssilveira in #543
  • Corrige compatibilidade do comparador no FPC 3.2.2 e estabiliza a suíte de testes by @regyssilveira in #544
  • fix(streaming): exclude HORSE_PROVIDER_NGHTTP2 from the default stream-writer registration by @freitasjca in #552
  • fix(websocket): type FeedBytes' parameter as the class, removing an interface-to-class cast that fails on FPC by @freitasjca in #551
  • feat(websocket): let providers signal a WebSocket upgrade without the HTTP/1.1 Upgrade header (RFC 8441) by @freitasjca in #550
  • perf(epoll): run the HTTP pipeline inline in the worker instead of hopping through TTask.Run by @festerzuki in #553
  • fix(cookies): correct minimum compiler version for TCookie.HttpOnly by @fabricio-sisplan in #559

New Contributors

Full Changelog: 3.3.2...3.3.3

3.3.2

Choose a tag to compare

@viniciussanchez viniciussanchez released this 05 Aug 15:35

Full Changelog: 3.3.1...3.3.2

3.3.1

Choose a tag to compare

@viniciussanchez viniciussanchez released this 04 Aug 01:53

Full Changelog: 3.3.0...3.3.1

3.3.0

Choose a tag to compare

@viniciussanchez viniciussanchez released this 01 Aug 19:12

What's Changed

New Contributors

Full Changelog: 3.2.0...3.3.0

3.2.0

Choose a tag to compare

@viniciussanchez viniciussanchez released this 30 Mar 20:46
44ccf97

What's Changed

New Contributors

Full Changelog: 3.1.9...3.2.0

3.1.9

Choose a tag to compare

@viniciussanchez viniciussanchez released this 17 Sep 18:25
0dd85a9

What's Changed

Full Changelog: 3.1.8...3.1.9

3.1.8

Choose a tag to compare

@viniciussanchez viniciussanchez released this 14 Sep 14:36

Full Changelog: 3.1.7...3.1.8

3.1.7

Choose a tag to compare

@viniciussanchez viniciussanchez released this 14 Sep 14:29

What's Changed

  • Implementacoes para tratamento de QueryParams como List by @fabiohmribeiro in #391
  • Na versão Seattle o Body do Request não esta reconhecendo caracteres especiais by @ds-sampaio in #364
  • Added Support for "Delphi 12 Athens" in Update README.md by @ShaunRoselt in #420
  • Update LICENSE Copyright to 2025 by @ShaunRoselt in #421
  • The HORSE_NOPROVIDER define has been included. It allows packages to … by @mppbg in #423
  • Fixed spelling mistake in HorseConstants.pas by @ShaunRoselt in #432
  • Limpeza e reorganização de units by @ViniAbreu in #427

New Contributors

Full Changelog: 3.1.6...3.1.7