Releases: ohkami-rs/ohkami
Releases · ohkami-rs/ohkami
v0.23.5
v0.23.4
v0.23.3
v0.23.2
What's Changed
- Dx(worker): copy var binding doc comments to associated consts by @kanarus in #394
- docs(biultin): add detailed document for builtin formats by @kanarus in #395
- fix(openapi): wrong operation generation by @kanarus in #396
- docs: expand docs around
Ohkami
struct by @kanarus in #397 - v0.23.2 by @kanarus in #398
Full Changelog: v0.23.1...v0.23.2
v0.23.1
What's Changed
- worker(bindings): add
new(&worker::Env) -> Result<Self>
method gen by @kanarus in #377 - docs: add note for warnings of
Queue
binding inwrangler dev
by @kanarus in #378 - docs: sync lib.rs's inner doc with README's header & add GitHub repo link by @kanarus in #379
- fix(builtin fangs): use
SendSyncOnNative
instead ofSend + Sync
for rt_worker by @kanarus in #380 - DX(worker): automatically
#[allow(unused)]
var binding fields in#[bindings]
to allow user to only use associate consts without warnings by @kanarus in #381 - builtin(JWT): add
.get_token_fn()
,.openapi_security()
getters by @kanarus in #382 - DX: export
SendOnNative
,SendSyncOnNative
fromutils
andfang::bound
by @kanarus in #383 - enhance: add
with_headers
method oftyped::status
's redirect types by @kanarus in #384 - enhance: add
util::iter_cookies
by @kanarus in #385 - enhance: specialize
typed::header::Cookie
withohkami_lib::serde_cookie
+Deserialize
by @kanarus in #386 - enhance(util): export
percent_*
andbase64_*
encoding utilities by @kanarus in #387 - fix(openapi): fix logic to getting type identifier in
into_handler::with_default_operation_id
by @kanarus in #390 - fix(openapi): fix
typed::header::Cookie
'sopenapi_inbound
by @kanarus in #392 - v0.23.1 by @kanarus in #393
Full Changelog: v0.23...v0.23.1
v0.23
What's Changed
- openapi(operation): replace
override_*
to map signature by @kanarus in #358 - openapi: remove
name
argument ofParameter::{in_path, maybe_in_path}
by @kanarus in #359 - Check the number of required path params by @kanarus in #360
- openapi: refer to
any::type_name::<F>
inIntoHandler
and automatically set defaultoperationId
by @kanarus in #362 - openapi: Fix #[derive(Schema)] bugs by @kanarus in #363
- docs: add "Database connection management with
Context
" section to README by @kanarus in #365 - openapi(#[derive(Schema)]): Support intercepting
from
,into
,try_into
serde helper attributes by @kanarus in #366 - openapi: Support
#[openapi(schema_with = "schema_fn")]
field/variant helper attribute by @kanarus in #367 - rename:
req.{env(), context(), lambda()}
->req.context.{env(), worker(), lambda()}
by @kanarus in #368 - builtin: security headers by @kanarus in #369
- chore(CI): split CI to some jobs in Actions by @kanarus in #370
- DX(fangs): alter
FangProc::bite
FangAction::{fore, back}
interface to enable rust-analyzer'sasync fn ...
completion by @kanarus in #371 - docs(README): fix Quick Start's ohkami version to 0.23 by @kanarus in #372
- docs(README): mention
highly integrated OpenAPI document generation
by @kanarus in #373 - docs(README): temporarily remove
Web Frameworks Benchmark
link by @kanarus in #374 - v0.23 by @kanarus in #375
Full Changelog: v0.22...v0.23
v0.22
What's Changed
- chore(macros): activate
worker
,openapi
inpackage.metadata.docs.rs
by @kanarus in #327 - chore: improve Cargo.tomls by @kanarus in #328
- openapi: repname
Responses::enumerated
intoResponses::new
by @kanarus in #332 - worker: support
ai
,r2_bucket
in#[bindings]
by @kanarus in #333 - worker: better Durable Object by @kanarus in #334
- openapi: tag by @kanarus in #335
- openapi:
Schema
: makeCow
,Arc
impl generic & impl for&Schema
by @kanarus in #336 - enhance: increase
Routing
impls tuples by @kanarus in #337 - chore(openapi): worker_openapi.js: add
--skip-login
option for diff test by @kanarus in #338 - fix(worker): improve
DurableObject
's default method impls by @kanarus in #339 - feat:
rt_lambda
by @kanarus in #340 - feat:
typed::header
by @kanarus in #341 - doc: README by @kanarus in #342
- worker: Support manual binding in
#[bindings]
by @kanarus in #343 - docs: update README and doc by @kanarus in #344
- chore(LICENSE): 2024 -> 2025 by @kanarus in #345
- update docs by @kanarus in #346
- rename:
Response::of
->Response::new
by @kanarus in #347 - openapi: make
{Response, Status}::openapi_responses
return emptyResponses
by @kanarus in #348 - docs: note
FIXME
this is flaky
for flaky tests by @kanarus in #349 - chore(lib): remove
signal
by @kanarus in #350 - fix: unify
x_lambda::ohkami_service_*
tests into single one by @kanarus in #351 - fix:
QueryParams::iter
: empty iterator when empty query by @kanarus in #352 - v0.22 by @kanarus in #353
- update docs by @kanarus in #354
- activate
Cow::Borrowed
viaIntoBody
by @kanarus in #355
Full Changelog: v0.21...v0.22
v0.21
What's Changed
- feat: graceful shutdown on all native runtime by @kanarus in #261
- feat: handle IP address by default on all native runtimes by @kanarus in #262
- refactor: remove
Send
Sync
bound of fang system onrt_worker
by @kanarus in #263 - refactor:
Memory
: make.0
public / place infang
& also export fromprelude
by @kanarus in #265 - chore: update README by @kanarus in #266
- rename
utils
toutil
by @kanarus in #269 - chore(deps): worker 0.3 → 0.4 by @kanarus in #270
- Fix version in README.md by @JustLinuxUser in #271
- chore CI: refactor Taskfile & use
dtolnay/rust-toolchain
instead ofactions-rs
by @kanarus in #273 - refactor(ws): extract WebSocket implementation to a crate by @kanarus in #274
- feat:
ws
onrt_worker
by @kanarus in #275 - fix: ws on rt_worker: wrap
ws
inRc
instead of clonews
itself by @kanarus in #276 - perf(ws on rt_worker):
SessionMap
: useswap_remove
& omit redundantNone
check by @kanarus in #278 - enhance: headers set optional value by @kanarus in #279
- perf: custom headers: use
Vec<(K, V)>
instead ofFxHashMap<K, V>
by @kanarus in #280 - rename: set
.custom()
->.__()
/ get.custom()
->.get()
by @kanarus in #281 - README: mention WebSocket on Durable Object on rt_worker by @kanarus in #282
- chore(CI): add
v*
toon.push.branches
by @kanarus in #283 - chore: fix warnings by @kanarus in #284
- refactor: router by @kanarus in #287
- refactor: runtime abstraction by @kanarus in #288
- feat: support
nio
async runtime by @kanarus in #289 - chore: remove feature flag
testing
&& exporttesting
module behind#[cfg(debug_assertions)]
by @kanarus in #290 - refactor: remove select macro of interruption handling by @kanarus in #291
- refactor ohkami_lib::time by @kanarus in #292
- chore: add README note what it is by @kanarus in #293
- rename:
SetHeaders
:.__()
->.x()
by @kanarus in #294 - docs: update doc comment for current
OHKAMI_*
environment variables by @kanarus in #296 - fix(native): perform
WaitGroup
's subtraction inDrop
impl for panic safety by @kanarus in #297 - refactor(sse):
DataStream
: more intuitive colocation and interface by @kanarus in #298 - chore(examples): refactor
examples/openai
->examples/chatgpt
by @kanarus in #299 - feat: openapi by @kanarus in #300
- chore(deps): worker 0.4 -> 0.5 by @kanarus in #301
- openapi: impl Schema for Cow by @kanarus in #302
- feat:
openapi
onrt_worker
by @kanarus in #303 - add wasm-pack installation by @kanarus in #304
- openapi: fix
sse::DataStream::openapi_responses
by @kanarus in #305 - fix(samples): make
worker-with-openapi
sample work & add test for builtin BasicAuth fang by @kanarus in #306 - feat: local fangs by @kanarus in #307
- feat: pass fangs via
Ohkami::new
by @kanarus in #308 Memory
toContext
by @kanarus in #309- chore(workspace) by @kanarus in #310
- feat:
Request.ip
on rt_worker by @kanarus in #311 - chore: fix JSDocs by @kanarus in #312
- fix(openapi): resolve compile error on
#[worker] async fn
by @kanarus in #313 - accept unknown flags without
--
and foward toadditionalOptions
by @kanarus in #314 - openapi: workers_openapi.js: use
npx wrangler
instead ofwrangler
by @kanarus in #315 - fix(openapi): consider that
process.argv
doesn't have script path innode -e
by @kanarus in #316 - chore: remove badgaes from lib.rs's inner doc by @kanarus in #317
- chore: update README, crate inner doc by @kanarus in #318
- docs: add doc comment for
Ohkami::{new, with}
by @kanarus in #319 - chore: add
Publish
workflow by @kanarus in #320 - chore: check if branch is main in
Publish
workflow by @kanarus in #321 - docs: add
handler
,path params
section inOhkami::new
doc by @kanarus in #322 - docs:
{Name}
->"{Name}"
literal-expected args by @kanarus in #323 - docs: add note about optional query params and
Option<Query<T>>
by @kanarus in #324
New Contributors
- @JustLinuxUser made their first contribution in #271
Full Changelog: v0.20...v0.21
v0.20
What's Changed
- Performance tuning by @kana-rus in #186
- Performance tuning by @kana-rus in #187
- Dispatch routers by method by @kana-rus in #188
- handle HEAD request by GET tree and respond without content, Content-Length by @kana-rus in #189
- Correctly handle OPTIONS, Access-Control-Request-Method by @kana-rus in #190
- Builtin basic auth fang by @kana-rus in #191
- update docs by @kana-rus in #192
- update docs by @kana-rus in #193
#[bindings]
: variable bindings as associated consts by @kana-rus in #194- update docs by @kana-rus in #195
- Fix bug on
response::Headers
's append & add test by @kana-rus in #196 - Performance tuning by @kana-rus in #197
- revise repo URLs to org's one by @kana-rus in #198
- use
TcpStream::split
inSession::manage
onrt_tokio
& omitVec
fromPath.params
by @kana-rus in #199 - feat: set keep-alive timeout by environment variable by @kana-rus in #200
- perf: lightweight headers map by @kana-rus in #201
- Refactor: headers by @kana-rus in #202
- perf: more optimized
itoa
by @kana-rus in #203 - add
File upload
sample to README by @kana-rus in #204 - Unroll
itoa
with a macro by @mcpower in #205 - Using random values in the
itoa
benchmark by @mizar in #206 - Wrong output
itoa_03
anditoa_04
by @mizar in #207 - refactor: bench
itoa
with test cases of less than 10GB by @kana-rus in #208 itoa
: statically assert that the max ofMAX
is 19 by @kana-rus in #209- refactor: bench itoa in 3 levels by @kana-rus in #210
- refactor standard headers: iterate only by inserted values by @kana-rus in #211
- chore: update deps by @kana-rus in #212
- fix itoa bench: reuse the same buffer and avoid redundant allocation during each iter by @kana-rus in #213
itoa
: Can be about 10 times faster by @mizar in #214- fix headers bench: use
Vec::reserve
for reserve buf capacity by @kana-rus in #215 - Remove
frac
fromtime::Time
by @kana-rus in #216 - fix: leave Content-Length in HEAD response by @kana-rus in #218
- feat: add
utils::timeout_in
by @kana-rus in #219 - feat: WebSocket by @kana-rus in #220
- feat: OHKAMI_WEBSOCKET_TIMEOUT by @kana-rus in #221
- fix: always send close frame when closing websocket connection by @kana-rus in #222
- fix: automatically send pong for ping from client in
Message::read_from
by @kana-rus in #223 - chore: README by @kana-rus in #224
- chore: update README by @kana-rus in #225
- feat:
q.add
instream::queue
by @kana-rus in #226 - feat: always specialize
index.html
in.Dir
by @kana-rus in #227 - fix ws Handler:
Fn
->FnOnce
& routing bug by @kana-rus in #228 - feat: split websocket connection by @kana-rus in #229
- fix: Taskfile & wrong cfg by @kana-rus in #230
- chore: ensure
rt_worker
to be built onwasm32-unknown-unknown
target by @kana-rus in #231 - Explicitly not-support using
ws::Connection
in detouched tasks by @kana-rus in #232 - feat: Graceful Shutdown by @kana-rus in #233
- refactor: graceful shutdown impl by @kana-rus in #237
- chore: not combine
cfg
s between outer and inner an anon-const to avoid error message on editor by @kana-rus in #238 - chore: fix
html_root_url
& crate inner doc comment by @kana-rus in #239 - Separate schema from format by @kana-rus in #245
- chore: include
Serialize
,Deserialize
,JSON
inprelude
by @kana-rus in #247 - chore: CI: cache sccache dir by @kana-rus in #248
- perf: reuse
Request
in a session by @kana-rus in #249 - feat: Add
"ip"
feature by @kana-rus in #250 - fea: add
"rt_glommio"
by @kana-rus in #252 - feat: add
"rt_smol"
by @kana-rus in #253 - chore: add
benches_{tokio,vs_actix-web}
& add[profile.release]
config tobenches_*
by @kana-rus in #254 - chore: update CI for more concurrency by @kana-rus in #255
- chore: remove format::V by @kana-rus in #256
- chore: benches_rt/tokio: set
event_interval
to 1 by @kana-rus in #257 - chore: update README by @kana-rus in #258
- chore: update README by @kana-rus in #259
- chore: dependencies: remove tokio's "sync" feature ( unused ) by @kana-rus in #260
New Contributors
Full Changelog: v0.19...v0.20
v0.19
What's Changed
- optimized CORS & append header with
,
instead of,
by @kana-rus in #155 - Add to
categories
: "network-programming", "wasm" by @kana-rus in #156 - introduce
JWTToken
& export frombuiltin::item
together withFile
by @kana-rus in #157 - Support unit into response by @kana-rus in #158
- Partially support cargo workspace in
#[bindings]
by @kana-rus in #159 #[bindings]
: add static methods that return vars bindings as literals by @kana-rus in #160- Support
unix_timestamp
in worker by @kana-rus in #161 - Fix & Update
builtin::utils::JWT
by @kana-rus in #162 - Support
where /* validation fn */
in#[Payload]
by @kana-rus in #163 #[Payload]
: take validating expression(s) inwhere 〜
by @kana-rus in #164- Improve error reportings by @kana-rus in #165
- Remove
log_error!
in ahead of BadRequest response with the error text by @kana-rus in #166 log_error!
→warning!
by @kana-rus in #167- Fix CORS: preflight: return with 200 (not 204) & correctly handle 404 by @kana-rus in #168
- fix JWT: skip verifying for OPTIONS requests by @kana-rus in #169
- fix JWT: to not return error response for OPTIONS amd only put warning by @kana-rus in #170
- fix
warning!
: useconsole_info!
instead ofconsole_warn!
in rt_worker by @kana-rus in #171 - Remove log
ohkami::builtin::JWT doesn't perform verifying for OPTIONS requests
inJWT::verified
by @kana-rus in #172 - Call
crate::warning!
directly by @kana-rus in #173 - Add test for response headers: write after multiple insertion with same key by @kana-rus in #174
- Support sse by @kana-rus in #175
- Optimized size-hexizing in sending chunked encoding by @kana-rus in #176
- More optimized size-hexizing for chunked encoding by @kana-rus in #177
- update dependencies by @kana-rus in #178
- bump version & update docs by @kana-rus in #179
- Return concrete type within all methods of
utils::StreamExt
by @kana-rus in #180 - Omit
S: Send
bound ofDataStream::from_stream
cfgfeature="rt_worker"
by @kana-rus in #181 - move codes around stream into
ohkami_lib/
& addStreamExt::chain
,once
by @kana-rus in #182 - Support 4
FromRequet
items in handler by @kana-rus in #183 - Add
utils::stream::queue
& openai chat completions example by @kana-rus in #184 - update README & add doc of
stream::queue
by @kana-rus in #185
Full Changelog: v0.18...v0.19