blink icon indicating copy to clipboard operation
blink copied to clipboard

Fastify migration?

Open JaneJeon opened this issue 4 years ago • 1 comments

Yes, yes. A webshit moth being drawn by "le new shiny web framework"! But I'm interested less in the "fast" part and more in the "not abandoned for years" part, plus the extensibility (expressjs assumes a lot about how you handle requests) and the OpenAPI schema-based approach. I've just been noticing a lot of digital dust on default express behaviour & middlewares and it's low key triggering me.

Probably gonna have to lump this into a major version bump to be safe.

Stuf

https://github.com/fastify/fastify https://github.com/fastify/fastify-cli (to not have to write disgusting app.js and bin/www) https://github.com/hemerajs/fastify-graceful-shutdown (again, bin/www shit handled from the CLI)

https://github.com/fastify/fastify-autoload ("free" autoload plugins, no need to compose everything myself) https://github.com/yonathan06/fastify-now ("free" file-based routing, again no need to compose everything myself) https://github.com/fastify/fastify-swagger ("free" OpenAPI files, esp. when paired with objection model schemas)

https://github.com/fastify/fast-json-stringify (I'm not sure if this is the "default" JSON serializer, but regardless it should integrate well) https://github.com/fastify/secure-json-parse (again, not sure if this is the "default" JSON parser, but regardless it is a no brainer)

https://github.com/fastify/fastify-cookie https://github.com/fastify/session https://github.com/fastify/fastify-formbody (better "built-in" middlewares than express or koa) https://github.com/fastify/fastify-multipart https://github.com/fastify/fastify-etag (it's not "in" by default!) https://github.com/fastify/fastify-csrf https://github.com/fastify/fastify-helmet https://github.com/fastify/fastify-sensible (nice utils) https://github.com/fastify/fastify-env or https://github.com/fastify/env-schema (for environment variables, I guess? but limited to fastify & doesn't load .env.$NODE_ENV(.local))

https://github.com/nucleode/arecibo (to automatically close #522 and get healthcheck endpoints for "free") https://github.com/tomsvogel/fastify-https-redirect (because some people are inevitably going to deploy this to an environment that doesn't auto-redirect) https://github.com/jsumners/fastify-no-icon (good god, why isn't this the default?) https://github.com/greguz/fastify-no-additional-properties (ditto) https://github.com/MetCoder95/fastify-get-head (ditto, also lol) https://github.com/Eomm/fastify-405 https://github.com/fastify/fastify-routes (print all routes, for debugging?)

https://github.com/fastify/fastify-auth (unfortunately doesn't have oidc auth; not a complete replacement for passport, not even close) https://github.com/fastify/fastify-jwt or https://github.com/fastify/fastify-bearer-auth https://github.com/fastify/fastify-passport (try NOT to use this; try to fall back on manual redirects w/ openid-client instead of using pStrategy) https://github.com/fastify/fastify-rate-limit https://github.com/fastify/fastify-circuit-breaker or https://github.com/fastify/under-pressure ("free" circuit breaker, not sure it's necessary w/ the rate limit, maybe as a replacement for the global rate limiter?) https://github.com/fastify/fastify-websocket (express-ws is unmaintained) https://github.com/fastify/fastify-caching (compatible w/ express middlewares) https://github.com/lependu/fastify-language-parser https://github.com/fastify/fastify-request-context (sharing variable across routes, I guess it's a replacement for fastify.$blah? but why) https://github.com/autotelic/fastify-opentelemetry (I don't think this is a replacement for APMs?) https://github.com/fastify/fastify-diagnostics-channel (ditto)

https://github.com/nearform/fastify-casbin (cool ACL stuff) https://github.com/nearform/fastify-casbin-rest (the cooler daniel)

https://github.com/fastify/fastify-mongodb (integrated state mgmt? not sure how I feel about this, esp. regarding mock-ability) https://github.com/fastify/fastify-redis https://github.com/fastify/fastify-elasticsearch https://github.com/jarcodallo/fastify-objectionjs (exposes fastify.objection) https://github.com/kamikazechaser/fastify-objectionjs-classes (exposes fastify.objection.class?) https://github.com/coopflow/fastify-mailer

JaneJeon avatar Oct 13 '21 01:10 JaneJeon

Wait until #573

JaneJeon avatar Oct 13 '21 01:10 JaneJeon