Fastify, Node.js için en hızlı ve hafif Web ve API Framework

Fastify, Node.js için en hızlı ve hafif Web ve API Framework

Verimli bir sunucu, daha düşük altyapı maliyeti, yük altında daha iyi yanıt verme ve mutlu kullanıcılar anlamına gelir. Güvenlik doğrulamalarından ve kullanışlı geliştirmelerden ödün vermeden, mümkün olan en fazla sayıda isteğe hizmet ettiğinizi bilerek, sunucunuzun kaynaklarını nasıl verimli bir şekilde yönetebilirsiniz? Tabi ki Fastify ile mümkün :)

Fastify, Hapi ve Express'ten ilham alan, en az ek yük ve güçlü bir eklenti mimarisi ile en iyi geliştirici deneyimini sağlamaya odaklanmış bir web frameworküdür. Bildiğimiz kadarıyla, şehirdeki en hızlı web frameworklerinden birisidir.

Fastify'ı kimler kullanıyor?

Fastify, büyük bir organizasyon ve ürün ekosistemine gururla güç veriyor.

companies-used-fastify

Fastify Özellikleri

Fastify'ın üzerine inşa edildiği temel özellikler ve ilkeler şunlardır:

  • Yüksek performanslı: Bildiğimiz kadarıyla Fastify, kod karmaşıklığına bağlı olarak saniyede 30 bin isteğe hizmet verebildiğimiz şehirdeki en hızlı web çerçevelerinden biridir.
  • Genişletilebilir: Fastify, kancaları, eklentileri ve dekoratörleri aracılığıyla tamamen genişletilebilir.
  • Şema tabanlı: Rotalarınızı doğrulamak ve çıktılarınızı seri hale getirmek için JSON Schema kullanmanızı tavsiye etmek zorunlu olmasa bile , Fastify dahili olarak şemayı yüksek performanslı bir fonksiyonda derler.
  • Günlük kaydı: günlükler son derece önemlidir ancak maliyetlidir; Bu maliyeti neredeyse ortadan kaldırmak için en iyi kaydediciyi seçtik Pino !
  • Geliştirici dostu: çerçeve çok etkileyici olacak ve geliştiricilere performans ve güvenlikten ödün vermeden günlük kullanımlarında yardımcı olacak şekilde oluşturulmuştur.
  • TypeScript hazır: büyüyen TypeScript topluluğunu destekleyebilmek için bir TypeScript türü bildirim dosyası sağlamak için çok çalışıyoruz.

Fastify ve diğer frameworklerin kıyaslaması

fastify-benchmarks

Örnek Node.js Kod Parçası

const fastify = require('fastify')({ logger: true })

fastify.route({
  method: 'GET',
  url: '/',
  schema: {
    // request needs to have a querystring with a `name` parameter
    querystring: {
      name: { type: 'string' }
    },
    // the response needs to be an object with an `hello` property of type 'string'
    response: {
      200: {
        type: 'object',
        properties: {
          hello: { type: 'string' }
        }
      }
    }
  },
  // this function is executed for every request before the handler is executed
  preHandler: async (request, reply) => {
    // E.g. check authentication
  },
  handler: async (request, reply) => {
    return { hello: 'world' }
  }
})

const start = async () => {
  try {
    await fastify.listen({ port: 3000 })
  } catch (err) {
    fastify.log.error(err)
    process.exit(1)
  }
}
start()

Yorumlar

Bu gönderi için yorum yapılmadı.