Releases: kana-rus/ohkami
Releases · kana-rus/ohkami
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
v0.18
Auto Generated
What's Changed
- Improve lib slice by @kana-rus in #129
- Add tests for headers by @kana-rus in #130
- Improve request parsing by @kana-rus in #131
- sync lib.rs inner doc with README by @kana-rus in #132
- Fix benches: feature selection & avoid SIGKILL by
&*vector
->vector.as_slice()
by @kana-rus in #133 - Update
CowContent
to useCowSlice
by @kana-rus in #134 - Improve Request parsing by @kana-rus in #135
- Update benches by @kana-rus in #136
- Update headers & benchmark by @kana-rus in #137
- Update req res interface by @kana-rus in #138
- Fix
Request::read
: returnOk(None)
if error kind isConnectionReset
by @kana-rus in #139 - Add bindings attribute by @kana-rus in #140
- Update docs by @kana-rus in #141
- Fix Cookie handling by @kana-rus in #142
- Support
Connection: "Close"
not only: "close"
by @kana-rus in #143 - Add Keep-Alive timeout by @kana-rus in #144
- Support
Sec-Fetch-{Dest,Mode,Site,User}
as standard headers by @kana-rus in #145 - Ignore error of
ErrorKind::NotConnected
in shutdown by Keep-Alive timeout by @kana-rus in #146 - Update README by @kana-rus in #147
- Update:
builtin::fang::Timeout
: construct by::by〜()
by @kana-rus in #148 - Update
worker
crate to v0.2 by @kana-rus in #149 - Fix macros: comment out
default = ["DEBUG"]
by @kana-rus in #150 - Fix
worker
version in README sample -> 0.2.0 by @kana-rus in #151 - bump version -> 0.18.1 by @kana-rus in #152
- Fix CORS &
testing::TestResponse::header
by @kana-rus in #153 - 0.18.1 -> 0.18.2 & Update README by @kana-rus in #154
Full Changelog: v0.17...v0.18
v0.17
Fundamental Changes
- Support Cloudflare Workers by
rt_worker
feature ( #117, #118, #121, #122, #127 ) - Support struct-level
#[query]
attribute in#[Query]
( #116 ) - Support optional
FromRequest
items ( #123 ) - Rebuild
Response
's public methods ( #126 )
Others
and docs update
Auto Generated
- Remove
[package.metadata.crates.io]
& Add docs forJWT
by @kana-rus in #114 - Add:
[package.metatata.docs.rs] features = ["rt_tokio"]
in ohkami/Cargo.toml by @kana-rus in #115 - Support struct-level #[query] attributes by @kana-rus in #116
- Add rt worker by @kana-rus in #117
- Fix: put target fn in
#[worker]
's expanded by @kana-rus in #118 - Fix:
Clone
,from_iter
by @kana-rus in #119 - insert
#[cfg(feature="DEBUG")] println!
s by @kana-rus in #120 - Fix:
QueryParams::iter
,Response::complete
(don't use setDate
… by @kana-rus in #121 - ohkami_lib: v0.2.0 -> v0.2.1 for marking
#[cfg(〜)]
an 64bit-speciffic code path to clear warning in wasm32 by @kana-rus in #122 - Support optional query payload by @kana-rus in #123
- Fix request::{Headers, QueryParams} : impl Debug by
debug_map
by @kana-rus in #124 - Updated Taskfile & Fix newly found errors by @kana-rus in #125
- Rebuild
Response
's public methods by @kana-rus in #126 - impl
FromRequest
forworker::{Env, Context}
inrt_worker
by @kana-rus in #127 - Add tests for URLEncoded by @kana-rus in #128
Full Changelog: v0.16.0...v0.17
v0.16
Fundamental Changes
Drastically update the fang system
- Introduce
Fang
andFangProc
, like tower'sLayer
andService
. - Omit doubly-boxed
Future
s inFangs
or something as possible I can. - Remove
Ohkami::howl_with
and make every fangs to be called for any requests, includingNot Found
one, that are eaten by aOhkami
they are registered. - Provide
FangAction
for easy impl ofFang
Drastically update the payload system
- Introduce
Payload
andPayloadType
trait based onserde
framework. - Remove
#[ResponseBody]
- Update
#[Payload]
to take an existing type that implsPayloadType
. - Provide 5 builtin
PayloadType
:JSON
,Text
,HTML
,Multipart
,URLEncoded
Add static dir serving
"/route".Dir("./path/to/dir")
creates Dir
, that serves all files in ./path/to/dir
.
Buildable without rt_*
For ease with developing third-party Fang
s, now ohkami
can be build without rt_*
feature.
More intuitive route matching
In request handling, make route matching independent of registering order in Ohkami
.
Internal Changes
More efficient resource handling in request / response
Put large arrays in Box<_>
, this doesn't make bench scores worse.
v0.15
Fundamental Updates
- Add
type Type: BodyType
inResponseBody
and, whenType
isJSON
, automatically implResponseBody<Type = JSON>
forVec<_>
,[_; _]
,&[_]
,Option<_>
- Add
type Error: IntoResponse
in{Front, Back}Fang
and updates their return type toOutput = Result<(), Self::Error>
Other Changes
Response::{json_str, set_json_str}
: mark as unsafe- Document updates
v0.14
v0.13.0
Fundamental Fix
- Activate
derive
feature of serde that ohkami directly depends on, then finally#[PayloadJSOND]
and#[ResponseBody(JSONS)]
get be able to work! - Implement a decent connection handling for HTTP/1.1, then finally got able to handle pipelined requests properly!
Breaking Changes
- The argument of
Ohkami::howl
:impl {runtime}::net::ToSocketAddr
instead ofimpl ohkami::TCPAddress
. - Automatically set
Content-Length: 0
for response if it does't have content and its status isn't204 No Content
.
Bug Fix
- Merge two or more duplicated fangs into one before applying them to router.
Others
- Improved error messages and error responses.
v0.12.0
Breaking Changes
- #75:Remove
Fang(〜)
and addFang::front
,Fang::back
- #73:Support all (non-deprecated) HTTP statuses in
Status
enum andtyped
module
Bug Fix
- #74:Fix a bug that
Request::path
returns an empty bytes when the raw request path is/
Other Changes
- Support any requests having path with trailing
/
- Update doc comments, README, LICENSE year