Az új kiadás fő célja az egyszerűbb telepítés, a teljesítmény növelése és a szükséges külső eszközök számának csökkentése. A frissítéseket David Heinemeier Hansson, a Ruby on Rails alapítója és a 37signals társtulajdonosa és technológiai vezetője mutatta be egy blogbejegyzésben.
Kamal 2 – Hatékonyabb telepítési eszköz
A Rails 8 egyik legnagyobb újdonsága a Kamal
2 nevű telepítési eszköz, amely lehetővé teszi, hogy
fejlesztők felhőalapú virtuális gépeken vagy helyi szervereken
futtassák alkalmazásaikat. A telepítés rendkívül egyszerű:
egyetlen kamal setup
paranccsal a
szerverek készen állnak az éles környezetben való működésre.
A Kamal 2 alapja egy Dockerfile, amely előállít egy teljesen kész konténerképet, ezzel kiküszöbölve a további webkiszolgálók, például az Nginx használatát. A rendszer tartalmazza a Thruster nevű proxyt, amely gyorsítja az X-Sendfile használatát, valamint optimalizálja az assetek gyorsítótárazását és tömörítését. Ezáltal a Rails konténerek azonnal használhatók az interneten.
Kamal Proxy – A Traefik leváltása
A Kamal 2 bevezette a Kamal Proxy eszközt, amely lecseréli a korábbi Traefik proxyt. Az új proxy támogatja a nulla állásidővel történő frissítéseket, a Let’s Encrypt által automatikusan generált SSL-tanúsítványokat, valamint több alkalmazás egyetlen szerveren történő futtatását. Mindemellett a konfiguráció egyszerű, és integrált titkosítási lehetőségeket kínál olyan eszközökkel, mint a 1Password vagy a Bitwarden.
Új SQLite-alapú adapterek
A Rails 8 célja a külső függőségek csökkentése, ezért bevezette három új SQLite-alapú adapterét:
Solid Cable: a Redis helyett közvetlenül az adatbázisban tárolja a WebSocket-üzeneteket, ami egyszerűbb hibakeresést tesz lehetővé.
Solid Cache: lemezes gyorsítótárat kínál, amely költséghatékony és skálázható megoldás, nagyobb adatokat is kezel, és akár titkosítást is támogat.
Solid Queue: a háttérben futó munkákhoz (pl. e-mailek küldése) már nincs szükség külön eszközökre, mint a Sidekiq. Az új megoldás közvetlenül a SQLite vagy más adatbázisok segítségével működik.
Propshaft – Az új asset-pipeline
A Rails 8 végleg leváltotta a régi Sprockets rendszert, és bevezette a Propshaftot, amely a modern webfejlesztési igényekhez igazodik. A Propshaft két egyszerű funkciót lát el: biztosítja az assetek elérési útvonalát, és gondoskodik azok gyorsítótárazását segítő digestek generálásáról. Az új megközelítés kompatibilis a korábbi rendszerekkel is, így a migráció könnyedén megoldható.
Egyszerűsített hitelesítés
A Rails 8 egy új generátort kínál, amely
teljes, session-alapú hitelesítési rendszert hoz létre. A
bin/rails generate authentication
paranccsal azonnal elkészülnek a szükséges modellek, kontrollerek
és e-mailek (például jelszó-visszaállításhoz). Ez a megoldás
lehetővé teszi, hogy harmadik féltől származó eszközök nélkül
is biztonságos hitelesítési rendszert építsünk.
Egyéb fontos változások
Biztonság: Alapértelmezett timeoutot vezettek be reguláris kifejezésekhez a szolgáltatásmegtagadási támadások megelőzése érdekében.
Elavult funkciók eltávolítása: A Rails 8 megszüntette a korábbi verziókban már elavultként megjelölt funkciókat, például az Active Record egyes régi metódusait és az Action View nem támogatott beállításait.
Ha részletesebben is érdekelnek a változások, látogass el a Rails 8 változásjegyzékéhez.