Notes :
- it does not strictly follow the semver convention.
- when something break, it's written.
- no long time support or backporting for major version, just use the last update.
- if you find bug/optimization, feel free to send patch.
- rewrite documentation with vuepress, docusaurus or another alternative
- automatic
Swagger API JSON
generation - jwt verify
iss
- support
async Task
in controller method return - sync
LiteJWT
library with upstream - sync
HttpMultipartDataParser
library with upstream
Maintenance
- backport fix from
Microsoft.IO.RecyclableMemoryStream
v3.0.1 to v2.3. - backport fix into
HttpMultipartDataParser
v8.4.0
Maintenance
- support HTTPS protocol using the new
SimpleWSServer()
class.
Maintenance
- the
getWebUserCallback
delegate set withSimpleW.SetToken()
is new call byController.JwtToWebUser()
to redressController.webuser
on each request.
Maintenance
- refactor: remove unused
expiration
parameter fromNetCoreServerExtension.ValidateJwt()
(#19) - refactor: remove unused
Controller.TokenExpiration
property (#18)
- refactor: change jwt default create expiration from 30min to 15min (#20)
Maintenance
- rename
WebSocketMessage.data
toWebSocketMessage.body
(#17)
- documentation
Maintenance
- remove
NetCoreServerExtension.GetBearer()
method.
Controller.GetJwt()
is now virtual and can be overrided in subclass.- documentation
Maintenance
- rename
SimpleW.SetTokenWebUserCallback()
method toSimpleW.SetToken()
and reorder parameters (#3). - rename
Controller.OnBeforeHandler()
method toController.OnBeforeMethod()
.
- fix(AutoIndex): do not show ".." in root path (#10).
- feature(WebSocket): handle multiple socket endpoints and not just once (#9).
- documentation
Maintenance
- property
RegExpEnabled
must be explicitly enabled to allow regular expression in route path (#2). - refactor(Router): use
Dictionnary<Key, Route>
whenRegExpEnabled
is false, performances improvement (#1)
Maintenance
- update nuget package settings
Maintenance
- update nuget package settings
Maintenance
- fix wrong label and status for
OnWsDisconnected
logging
Maintenance
- fix wrong label and status for
OnWsDisconnected
logging
- add release-notes
- enhance logging
Maintenance
- remove
Prefix
property fromRouteAttribute
class
- add new
AutoIndex
property to list documents when defaultDocument does not exists - add new property
RegExpEnabled
to force Router handle regular expression in Routes
Maintenance
- sync with upstream (NetCoreServer fix websocket closing)
- split
Route
with a newRouter
class - rename
ObjectMethodExecutor
toControllerMethodExecutor
- use
StringComparison.OrdinalIgnoreCase
Maintenance
- clean code
- add documentation
- add license
- include LitJWT sources in projet files
New Major Version
- fix huge performances degradation due to old
Trace.Trace*()
methods
New Major Version
- rename
AddApiContent()
toAddDynamicContent()
Maintenance
- throw error on starting static server when containing file which size is 0
- reorganize
CompileHandler()
method - refactor
ObjectMethodExecutor.Controllers()
- add some check to
AddApiContent()
andAddWebSocketContent()
methods - refactor
RouteAttribute.SetPrefix()
- clean code
New Major Version
- refactor
mimeTable
- add NetCoreServer Official Readme
- sync with upstream (HttpMultipartDataParser to v8.2.0)
Maintenance
- compliant to OpenTelemetry http semantic convention
Maintenance
- convert old trace to
system.diagnostics.Activity
for OpenTelemetry
Maintenance
- preliminary support of
system.diagnostics.Activity
for OpenTelemetry
Maintenance
- change scope from protected to public for
Controller.MakeResponse*()
Maintenance
- add new
MakeDownloadResponse(MemoryStream content)
Maintenance
- change
MakeRedirectResponse()
scope to private
Maintenance
- add new helper
Controller.MakeRedirectResponse()
Maintenance
- clean code
Maintenance
- support
DateOnly
inController.Method()
parameter
Maintenance
- sync with upstream (Newtonsoft v13.0.3)
BodyMap/JsonMap/BodyMapAnonymous
: add new json custom converter for hh:mm timeonly
Maintenance
- add new
Controller.MakeResponse()
New Major Version
- refactor SimpleW with
BodyMap()
,BodyMapAnonymous()
andBodyFile()
- comment
New Major Version
- sync with upstream (NetCoreServer v7.0.0)
- sync with upstream (LitJWT v2.0.2)
- sync with upstream (Newtonsoft v13.0.2)
- retargeting to NET7
Maintenance
- uniformize http and websocket log
Maintenance
- comment
- replace special char
"
in logging url
Maintenance
- logging error and exception
Maintenance
- refactor
Controller.GetWebUser()
intoSetWebUser()
andJwtToWebUser()
- support
JWT
inWebSocket
connexion
Maintenance
- refactor
SimpleWServer.AddWebSocketContent()
- support
JWT
inWebSocket
New Major Version
- fix null exception in
Controller.GetJwt()
when parsing request url
- support
Websocket
- support
Route
for websocket - refactor
SimpleWSession/Controller
with(SimpleWServer)Session.Server
New Major Version
- rename
AddRESTContent
toAddApiContent
- remove exception message output when http 500 error
Maintenance
- sync with upstream (NetCoreServer v6.6.0)
- sync with upstream (Http-Multipart-Data-Parser v7.0.0)
Maintenance
- support CORS
- add new
HttpResponse.MakeCORSResponse()
method
Maintenance
- replace
X-Scheme
header byX-Forwarded-Proto
- handle
X-Forwarded-Host
header in log
Maintenance
- support
X-Scheme
request header for logging
Maintenance
- log full request url for file in cache and normalize log url
- log real remote ip
- refactor
Route
with the newFQURL()
method
Maintenance
shouldSerializeContractResolver()
handle nested class
Maintenance
- sync with upstream (NetCoreServer v6.5.0 fix websocket regression)
Maintenance
- add new parameter
description
toRouteAttribute
Maintenance
- sync with upstream (NetCoreServer v6.4.0 with Span/Memory)
Maintenance
- sync with upstream NetCoreServer (fix deadlock in websocker/wssession)
- sync with upstream NetCoreServer (Add HTTP cookie SameSite=Strict mode)
- comment
- add new parameter
excepts
toSimpleW.AddRESTContent()
to exclude controllers - support wildcard in
RouteAttribute
Maintenance
- sync with upstream package LitJWT from v1.2.0 to v2.0.1
Maintenance
- enhance http logging (time, status, user_agent...)
Maintenance
- add new parameter
expiration
toNetCoreServerExtension.CreateJwt()
to controlJWT
expiration
Maintenance
- enhance http logging (time, status, user_agent...)
Maintenance
- add new paremeter
refresh
inCreateJwt()
to control howSession
should refresh the underlying 'IWebUser'
Maintenance
- rename
NetCoreServerExtension.PostMap()
toNetCoreServerExtension.JsonMap()
Maintenance
- rename
NetCoreServerExtension.GetBearerToken()
toNetCoreServerExtension.GetBearer()
Maintenance
- replace logging
console.log
bysystem.diagnostics
Maintenance
- change some method scope of Route class to private
- rename
Route.Parse()
toRoute.ParseQueryString()
JWT
HTTP Header can be override by ajwt
querystring in url- comment
- add new
NetCoreServerExtension.CreateJwt(IWebUser webuser)
- refactor
ValidateJwt
with Generic - refactor and simplify
TokenWebUser
class
New Major Version
- rename class
Controller
toControllerBase
- add new parameter
TokenExpiration
toTokenWebUser
Maintenance
- rename
DelegateSetTokenWebUser(string login=null)
toDelegateSetTokenWebUser(Guid id = new Guid())
Maintenance
- ignore case when parsing http header authorization
Maintenance
- add new ControllerBase
MakeForbiddenResponse()
andMakeAccessResponse()
Maintenance
- replace
InvariantCulture
withOrdinal
- remove
JsonSerializerSettingsDefaultCulture
fromNetCoreServerExtension.PostMap()
- enhance exception message in
NetCoreServerExtension.PostMap()
- add comment
Maintenance
- retargeting to NET6
Maintenance
- add
Http-Multipart-Data-Parser
Maintenance
- remove debug message
Maintenance
- fix NetCoreServer
FileCache.InsertFileInternal()
ReadAllBytes()
error
Maintenance
- fix correct timestamp in console log
Maintenance
- fix netcoresever
FileCache
- fix compressTypes in
ControllerBase.SendResponseAsync()
New Major Version
- sync with upstream (NetCoreServer v6.1.0)
Maintenance
- refactor
SimpleWServer.AddWebSocketContent()
Initial nuget package release
- rename
PostUpdate()
toPostMap()
Maintenance
- support Guid parameter in
Controller.Method()
Maintenance
- parameter null converter in
Controller.Method()
Initial stable release
- serve Statics Files
- serve REST API
- routes
- set default document
- set custom mime type
- log with console.writeline