Commit graph

248 commits

Author SHA1 Message Date
Serdar Dogruyol - Sedo セド
990fdf2a42
Add shutdown_timeout configuration and implement graceful shutdown behavior (#745) 2026-03-19 20:15:57 +03:00
Serdar Dogruyol - Sedo セド
f618eece5b
Add raw_body to ParamParser for multi-handler body access (#740) 2026-03-03 14:29:39 +03:00
Serdar Dogruyol - Sedo セド
6c6270dee7
Fix OverrideMethodHandler route cache bug (#741) (#742) 2026-03-01 21:46:33 +03:00
Serdar Dogruyol - Sedo セド
89966f6f7b
Make route LRU cache concurrency-safe with Mutex (#739) 2026-02-17 12:01:52 +03:00
Serdar Dogruyol - Sedo セド
c09f0eaefb
Improve CLI SSL validation and expand CLI option parsing specs (#738) 2026-02-16 10:25:44 +03:00
Anton Maminov
1460c68d5f
ensures global wildcard filters always execute while keeping namespace filters isolated to their routes (#737) 2026-02-12 15:34:41 +03:00
Serdar Dogruyol - Sedo セド
c65e6d1dd6
Add modular Router support (#731) 2026-02-09 11:33:22 +03:00
Anton Maminov
83ae194d7c
Add support to halt execution with a chained response (#736) 2026-02-06 14:13:24 +03:00
Serdar Dogruyol - Sedo セド
71f4e4528b
Improve response helpers: HTTP::Status, direct write, content_type param (#735) 2026-02-05 13:34:38 +03:00
Serdar Dogruyol - Sedo セド
3b45f93dae
Add use keyword for middleware registration with path-specific support (#734) 2026-02-05 13:30:16 +03:00
Serdar Dogruyol - Sedo セド
951be7524e
Add response helpers for JSON, HTML, text, XML, and status (#733) 2026-02-03 11:00:28 +03:00
Serdar Dogruyol - Sedo セド
3c858bf24e
[Security] Limit maximum request body size to avoid DoS attacks (#730) 2026-01-26 10:48:41 +03:00
Sijawusz Pur Rahnama
1c5cc8c0f9
Ameba v1.7 (#729) 2026-01-11 13:18:57 +03:00
Serdar Dogruyol - Sedo セド
d9352d5115
Replace full-flush Route cache with LRU and add a configurable max cache size (#724) 2025-10-31 19:11:20 +03:00
Serdar Dogruyol
5bd65bcb73 improve run_spec, move Kemal configuration to run method and update server bind ports 2025-09-29 14:29:26 +03:00
kojix2
47263d4f19
Fix typos in spec files (#715) 2025-04-18 16:10:39 +03:00
Serdar Dogruyol - Sedo セド
2408828c85
Improve Static File Handler to follow Crystal stdlib version (#711) 2025-04-14 16:48:52 +03:00
Serdar Dogruyol
56e58fc4d6 Fix Path Traversal in StaticFileHandler, see https://packetstorm.news/files/id/190294/ 2025-04-14 14:25:46 +03:00
Serdar Dogruyol
95864868a0 Update run_spec to respect latest Log change 2025-04-03 18:19:11 +03:00
Serdar Dogruyol
d4c842e82d Remove depracated custom logger spec 2025-04-03 17:54:17 +03:00
Serdar Dogruyol - Sedo セド
0335e861aa
Add before_all filter execution for 404 errors in FilterHandler (#706) 2025-04-03 16:05:55 +03:00
Serdar Dogruyol - Sedo セド
e3de2ada63
Implement multiple partial ranges (#708) 2025-04-03 15:55:53 +03:00
Hugo Parente Lima
19d3913b5d
Embrace Crystal standard Log for logging. (#705)
* Embrace Crystal standard Log for logging.

Kemal uses a LogHandler to log requests, this code predates the
Crystal Log class so while the Kemal documentation says that logging is
done using Log class, the http request log is done in a different way.

This patch deprecates:
- Kemal::Config#logger
- Kemal::Config#logger=(Kemal::BaseLogHandler)
- log(String)
- Kemal::LogHandler.initialize(IO)
- NullLogHandler

and changes:

- Add Kemal::Log (Log = ::Log.for(self))
- Kemal::LogHandler now uses Log.
- No handler is created if logging is set to false.

Old code using custom log handlers must work as before.

* Let ExceptionHandler use Log instead of log.

* Deprecate Kemal::LogHandler and adds Kemal::RequestLogHandler.

* Don't break API on Kemal#logger.

* Add test for Kemal::RequestLogHandler.

* Do not log redundant informations like timestamp and exception message.

* Use ex.message on unexpected exceptions log message.
2025-04-01 13:25:09 +03:00
syeopite
a9324bee6f
Fix Lint/UnusedArgument in custom exception spec (#699) 2024-12-20 10:46:06 +03:00
syeopite
6b884dd4ea
Add ability to add handlers for raised exceptions (#688)
Add ability to add handlers for raised exceptions. Closes #622
2024-12-19 16:14:25 +03:00
Johannes Müller
dc031c6074
crystal tool format with Crystal 1.15.0-dev (#691) 2024-10-12 13:01:24 +03:00
Serdar Dogruyol - Sedo セド
85fcbbee02
Windows support (#690)
Windows support
2024-10-01 10:11:52 +03:00
Abdullah Alhusaini
3243b8e0e0
clarify startup message in test mode (#687) 2024-07-30 12:44:38 +03:00
Serdar Dogruyol - Sedo セド
6a29240bbe
Use context instead of response in static_headers helper (#681) 2024-05-10 18:47:27 +03:00
Sijawusz Pur Rahnama
b074578c1a
Add Date header to HTTP responses (#676) 2024-04-10 19:26:04 +03:00
Sijawusz Pur Rahnama
9628043e4c
Bump exception_page dependency (#669) 2024-01-23 19:08:49 +03:00
Mike Robbins
8ebe171279
HeadRequestHandler: run GET handler and don't return the body (#655) 2023-02-22 07:34:47 +03:00
Serdar Dogruyol - Sedo セド
84ea6627ac
Add Kemal::OverrideMethodHandler (#651) 2023-02-19 08:59:30 +03:00
Anton Maminov
6a10ea8127
bump ameba to 1.4.0 and fix warnings (#654) 2023-02-17 08:18:37 +03:00
Serdar Dogruyol - Sedo セド
c8f857dff3
Omitting filters fix for lowercase methods requests (#647) 2022-09-15 11:52:28 +03:00
Russell Smith
05d55540b9
Enable option for index.html to be a directories default (#640) 2022-06-30 18:00:51 +03:00
Serdar Dogruyol
268e501a63 fix Crystal 1.5.0 warnings 2022-06-29 13:31:28 +03:00
Serdar Dogruyol
f8fc8ce8c8 fix ameba warnings 2022-06-29 13:29:50 +03:00
Chao Yang
9bd24caf7e
Closes response by default in HTTP::Server::Context#redirect (#641) 2022-06-29 13:25:40 +03:00
Serdar Dogruyol - Sedo セド
317d086b4c
fix content_for failing to capture the correct block input (#639) 2022-06-27 12:28:13 +03:00
matthewmcgarvey
d6dc893052 Fix content rendering 2022-02-24 17:49:19 +03:00
Serdar Dogruyol - Sedo セド
64733c10e0
Set content type to text/html for 500 exceptions (#616) 2021-09-01 18:26:38 +03:00
Anton Maminov
14aabb8907
fixed executing filters when before and after is defined at the same time (#612) 2021-09-01 16:25:21 +03:00
Oleh Prypin
926206a46c
Allow running specs from any directory (#609) 2021-04-11 12:17:50 +03:00
Aravinda Vishwanathapura
de5e022222
New option to set application name (#606) 2021-04-05 18:05:06 +03:00
Sijawusz Pur Rahnama
0764091e03
Bump ameba dependency (#602) 2021-03-15 08:45:35 +03:00
jinn999
8d0875f64c
Fix StaticFileHandler failing spec (#599) 2021-03-07 14:29:49 +03:00
Brian J. Cardiff
a819d4792b
Refactor run_spec to use process exit instead of empty stderr (#584)
Bonus: It also allows run_spec to pass if using bin/crystal wrapper
2020-08-15 18:09:53 +03:00
Anton Maminov
2e749a2987
fix an issues with responding with long strings (#576) 2020-07-08 14:41:16 +03:00
Brian J. Cardiff
a8c0f09b85
Upgrade to Crystal 0.35.0 (#570)
* Update to ameba ~> 0.12.0

* Use Compress::Deflate and Compress::Gzip

* Drop unused require

* Fix spec due to defer request upgrade
2020-06-10 21:11:43 +03:00