Vaikutuksen vuosikymmen: Kuinka npm-pakettimme saavuttavat 1 miljardin latauksen ja muotoiltuja JavaScriptiä

Vuonna JavaScript ja Node.js jotkin paketit ovat välttämättömiä – ne ladataan miljoonia kertoja päivittäin ja ne tarjoavat virran sovelluksia maailmanlaajuisesti. Näiden työkalujen takana ovat avoimen lähdekoodin laatuun keskittyneet kehittäjät. Tänään näytämme, kuinka tiimimme auttaa rakentamaan ja ylläpitämään npm-paketteja, joista on tullut JavaScript-ekosysteemin avainosia.

Pioneerit, jotka luottavat meihin: Isaac Z. Schlueter ja välitä sähköposti

Olemme ylpeitä siitä Isaac Z. Schlueter (GitHub: isaacs) käyttäjänä. Isaac loi merenpinnan yläpuolella ja auttoi rakentamaan Node.js. Hänen luottamuksensa Forward Emailiin osoittaa, että keskitymme laatuun ja turvallisuuteen. Isaac käyttää edelleenlähetyssähköpostia useilla verkkotunnuksilla, mukaan lukien izs.me.

Isaacin vaikutus JavaScriptiin on valtava. Vuonna 2009 hän näki ensimmäisten joukossa Node.js:n potentiaalin työskennellessään sen kanssa Ryan Dahl, joka loi alustan. Kuten Isaac sanoi eräässä Increment-lehden haastattelu: "Keskellä tätä hyvin pientä yhteisöä, jossa joukko ihmisiä yritti keksiä, kuinka saada palvelinpuolen JS toteutumaan, Ryan Dahl esitteli Noden, joka oli aivan selvästi oikea lähestymistapa. Heitin pelimerkkini siihen ja olin hyvin mukana noin vuoden 2009 puolivälissä."

[!HUOM] Node.js:n historiasta kiinnostuneille on saatavilla erinomaisia dokumentteja, jotka kertovat sen kehityksestä, mukaan lukien Node.js:n tarina ja 10 asiaa, joita kadun Node.js:ssä - Ryan Dahl. Ryan Dahlin henkilökohtainen verkkosivusto sisältää myös arvokkaita näkemyksiä hänen työstään.

npm:n luomisesta Node.js-johtajuuteen

Isaac loi npm:n syyskuussa 2009, ja ensimmäinen käyttökelpoinen versio julkaistiin vuoden 2010 alussa. Tämä paketinhallinta täytti Node.js:n keskeisen tarpeen, jolloin kehittäjät voivat helposti jakaa ja käyttää koodia uudelleen. mukaan Node.js Wikipedia-sivu, "Tammikuussa 2010 Node.js-ympäristöön otettiin käyttöön paketinhallinta nimeltä npm. Paketinhallinnan avulla ohjelmoijat voivat julkaista ja jakaa Node.js-paketteja mukana tulevan lähdekoodin kanssa, ja se on suunniteltu yksinkertaistamaan pakettien asennusta, päivittämistä ja asennuksen poistamista."

Kun Ryan Dahl vetäytyi Node.js:stä tammikuussa 2012, Isaac otti vastuun projektin johtajana. Kuten todettiin hänen yhteenvetonsa, hän "Johti useiden Node.js-ydinsovellusliittymien, mukaan lukien CommonJS-moduulijärjestelmän, tiedostojärjestelmän API:t ja streamit, kehitystä" ja "Toimi projektin BDFL:nä (Benevolent Dictator For Life) 2 vuoden ajan varmistaen jatkuvasti kasvavan laadun ja luotettavan rakennusprosessin Node.js-versioille v0.6 - v0.10."

Isaac ohjasi Node.js:n läpi keskeisen kasvukauden ja asetti standardit, jotka muovaavat alustaa edelleen. Myöhemmin hän perusti npm, Inc:n vuonna 2014 tukemaan npm-rekisteriä, jota hän oli aiemmin ajanut yksin.

Kiitämme Isaacia hänen valtavasta panoksestaan JavaScriptiin ja jatkamme monien hänen luomiensa pakettien käyttöä. Hänen työnsä on muuttanut tapaa, jolla rakennamme ohjelmistoja ja kuinka miljoonat kehittäjät jakavat koodia maailmanlaajuisesti.

Arkkitehti koodin takana: Nick Baugh's Journey

Avoimen lähdekoodin menestyksemme ytimessä on Nick Baugh, Forward Emailin perustaja ja omistaja. Hänen työnsä JavaScriptin parissa kestää lähes 20 vuotta ja on muokannut sitä, kuinka monet kehittäjät rakentavat sovelluksia. Hänen avoimen lähdekoodin matkansa osoittaa sekä teknistä taitoa että yhteisön johtajuutta.

Express tekninen komitea ja keskeiset panokset

Nickin verkkokehysosaaminen toi hänelle paikan Express tekninen komitea, jossa hän auttoi yhden käytetyimmistä Node.js-kehyksestä. Nick on nyt listattu ei-aktiiviseksi jäseneksi Express yhteisön sivu.

[!TÄRKEÄÄ] Expressin loi alun perin TJ Holowaychuk, tuottelias avoimen lähdekoodin avustaja, joka on muokannut suuren osan Node.js-ekosysteemistä. Olemme kiitollisia TJ:n perustavanlaatuisesta työstä ja kunnioitamme hänen päätös pitää tauko hänen laajasta avoimen lähdekoodin panoksestaan.

Yhdistyksen jäsenenä Express tekninen komitea, Nick osoitti suurta huomiota yksityiskohtiin selventämisen kaltaisissa asioissa req.originalUrl dokumentointi ja moniosaisten lomakkeiden käsittelyongelmien korjaaminen.

Koa Framework Contributions

Nickin työ Koa-kehys– moderni, kevyempi vaihtoehto Expressille, jonka on myös luonut TJ Holowaychuk – osoittaa edelleen hänen sitoutumisensa parempiin verkkokehitystyökaluihin. Hänen Koa-panoksensa sisältävät sekä ongelmia että koodin vetopyyntöjen kautta, virheiden käsittelyä, sisältötyyppien hallintaa ja dokumentaation parannuksia.

Hänen työnsä sekä Expressissä että Koassa antaa hänelle ainutlaatuisen näkemyksen Node.js-verkkokehityksestä, mikä auttaa tiimiämme luomaan paketteja, jotka toimivat hyvin useiden kehysekosysteemien kanssa.

Yksittäisestä avustajasta organisaation johtajaksi

Se, mikä alkoi olemassa olevien projektien auttamisesta, kasvoi kokonaisten pakettiekosysteemien luomiseksi ja ylläpitämiseksi. Nick perusti useita GitHub-organisaatioita - mukaan lukien Mökki, Roskapostiskanneri, Lähetä sähköposti edelleen, Poika, ja Bree– jokainen ratkaisee JavaScript-yhteisön erityistarpeita.

Tämä muutos avustajasta johtajaksi osoittaa Nickin näkemyksen hyvin suunnitellusta ohjelmistosta, joka ratkaisee todelliset ongelmat. Järjestämällä liittyviä paketteja keskittyneiden GitHub-organisaatioiden alle hän on rakentanut työkaluekosysteemejä, jotka toimivat yhdessä ja pysyvät modulaarisina ja joustavina laajemmalle kehittäjäyhteisölle.

GitHub-organisaatiomme: Innovaatioekosysteemit

Järjestämme avoimen lähdekoodin työmme keskittyneiden GitHub-organisaatioiden ympärille, joista jokainen ratkaisee erityistarpeet JavaScriptillä. Tämä rakenne luo yhtenäisiä pakettiperheitä, jotka toimivat hyvin yhdessä ja pysyvät modulaarisina.

Mökki: Strukturoitu kirjaus nykyaikaisiin sovelluksiin

The Mökin organisaatio on meidän näkemyksemme yksinkertaisesta ja tehokkaasta sovellusten kirjaamisesta. Pääasiallinen cabin paketissa on lähes 900 GitHub-tähteä ja yli 100 000 viikoittaista latausta[^1]. Cabin tarjoaa jäsenneltyä kirjausta, joka toimii suosittujen palveluiden, kuten Sentry, LogDNA ja Papertrail, kanssa.

Cabinin tekee erityisen sen harkittu API ja laajennusjärjestelmä. Tukipaketit, kuten axe Express-väliohjelmistolle ja parse-request HTTP-pyynnön jäsennys osoittaa sitoutumisemme kokonaisiin ratkaisuihin yksittäisten työkalujen sijaan.

The bson-objectid Paketti ansaitsee erityismaininnan, sillä yli 1,7 miljoonaa latausta kahdessa kuukaudessa[^2]. Tästä kevyestä MongoDB ObjectID -toteutuksesta on tullut kehittäjille, jotka tarvitsevat tunnuksia ilman täydellisiä MongoDB-riippuvuuksia.

Roskapostin skanneri: Sähköpostin väärinkäytön torjunta

The Roskapostinlukijaorganisaatio osoittaa sitoutumisemme todellisten ongelmien ratkaisemiseen. Pääasiallinen spamscanner paketti tarjoaa edistyneen sähköpostin roskapostin tunnistuksen, mutta se on url-regex-safe paketti, joka on nähnyt hämmästyttävän hyväksynnän.

Yli 1,2 miljoonaa latausta kahdessa kuukaudessa[^3], url-regex-safe korjaa kriittiset tietoturvaongelmat muissa URL-tunnistuksen säännöllisissä lausekkeissa. Tämä paketti näyttää lähestymistapamme avoimeen lähdekoodiin: yhteisen ongelman löytäminen (tässä tapauksessa RedoS URL-tarkistuksen haavoittuvuuksia), luotettavan ratkaisun luominen ja sen huolellinen ylläpito.

Bree: Moderni työaikataulu työntekijöiden säikeillä

The Bree organisaatio on vastauksemme yleiseen Node.js-haasteeseen: luotettava työn ajoitus. Pääasiallinen bree Paketti, jossa on yli 3 100 GitHub-tähteä, tarjoaa nykyaikaisen työn ajoituksen, joka käyttää Node.js-työsäikeitä parantaakseen suorituskykyä ja luotettavuutta.

[!HUOM] Bree luotiin, kun auttoimme ylläpitämään Agenda, soveltamalla saatuja kokemuksia paremman työn aikataulun rakentamiseksi. Agenda-panoksemme auttoivat meitä löytämään tapoja parantaa työaikataulua.

Mikä tekee Breesta eron muista ajoittajista, kuten Agenda:

  • Ei ulkoisia riippuvuuksia: Toisin kuin Agenda, joka tarvitsee MongoDB:n, Bree ei vaadi Redistä tai MongoDB:tä työtilan hallintaan.
  • Työntekijän langat: Bree käyttää Node.js-työsäikeitä hiekkalaatikkoprosesseihin, mikä tarjoaa paremman eristyksen ja suorituskyvyn.
  • Yksinkertainen API: Bree tarjoaa yksityiskohtaisen hallinnan yksinkertaisella tavalla, mikä helpottaa monimutkaisten aikataulutarpeiden toteuttamista.
  • Sisäänrakennettu tuki: Asiat, kuten siro uudelleenlataus, cron-työt, päivämäärät ja ihmisystävälliset ajat, sisältyvät oletuksena.

Bree on keskeinen osa forwardemail.net, hoitaa tärkeitä taustatehtäviä, kuten sähköpostin käsittelyä, siivousta ja ajoitettua huoltoa. Breen käyttäminen Forward Emailissa osoittaa sitoutumisemme käyttää omia työkalujamme tuotannossa ja varmistaa, että ne täyttävät korkeat luotettavuusstandardit.

Käytämme ja arvostamme myös muita loistavia työntekijöiden lankapaketteja, kuten allas ja HTTP-asiakkaat pitävät yksitoista. Piscina, kuten Bree, käyttää Node.js-työsäikeitä tehokkaaseen tehtävien käsittelyyn. Kiitämme Matthew Hill, joka ylläpitää sekä undici- että piscinaa, hänen merkittävistä panoksistaan Node.js:ään. Matteo toimii Node.js:n teknisessä ohjauskomiteassa ja on parantanut huomattavasti HTTP-asiakasominaisuuksia Node.js:ssä.

Lähetä sähköposti edelleen: avoimen lähdekoodin sähköpostiinfrastruktuuri

Kaikkein kunnianhimoisin projektimme on Lähetä sähköposti edelleen, avoimen lähdekoodin sähköpostipalvelu, joka tarjoaa sähköpostin edelleenlähetys-, tallennus- ja API-palveluita. Päävarastossa on yli 1 100 GitHub-tähteä[^4], mikä osoittaa, että yhteisö arvostaa tätä vaihtoehtoa omistetuille sähköpostipalveluille.

The preview-email Tämän organisaation paketista, jossa on yli 2,5 miljoonaa latausta kahdessa kuukaudessa[^5], on tullut olennainen työkalu sähköpostimallien parissa työskenteleville kehittäjille. Tarjoamalla yksinkertaisen tavan esikatsella sähköposteja kehityksen aikana, se ratkaisee yleisen ongelman sähköpostisovellusten rakentamisessa.

Lad: Essential Koa Utilities and Tools

The Poikajärjestö tarjoaa kokoelman olennaisia apuohjelmia ja työkaluja, jotka keskittyvät ensisijaisesti Koa-kehyksen ekosysteemin parantamiseen. Nämä paketit ratkaisevat yleisiä verkkokehityksen haasteita, ja ne on suunniteltu toimimaan saumattomasti yhdessä, mutta ne ovat itsenäisesti hyödyllisiä.

koa-better-error-handler: Koan parannettu virheiden käsittely

koa-better-error-handler tarjoaa paremman virheenkäsittelyratkaisun Koa-sovelluksiin. Yli 50 GitHub-tähdellä tämä paketti tekee ctx.throw tuottaa käyttäjäystävällisiä virheilmoituksia samalla kun huomioidaan useita Koan sisäänrakennetun virheenkäsittelijän rajoituksia:

  • Tunnistaa ja käsittelee oikein Node.js DNS-, Mongoose- ja Redis-virheet
  • Käyttää Puomi johdonmukaisten, hyvin muotoiltujen virhevastausten luomiseen
  • Säilyttää otsikot (toisin kuin Koan sisäänrakennettu käsittelijä)
  • Säilyttää asianmukaiset tilakoodit sen sijaan, että asettaisi oletuksena 500:aan
  • Tukee flash-viestejä ja istunnon säilyttämistä
  • Tarjoaa HTML-virheluettelot vahvistusvirheille
  • Tukee useita vastaustyyppejä (HTML, JSON ja pelkkä teksti)

Tämä paketti on erityisen arvokas, kun sitä käytetään yhdessä koa-404-handler kattavaan virheenhallintaan Koa-sovelluksissa.

Passi: Todennus Ladille

@ladjs/passport laajentaa suosittua Passport.js-todennuksen väliohjelmistoa erityisillä parannuksilla nykyaikaisia verkkosovelluksia varten. Tämä paketti tukee useita käyttövalmiin todennusstrategioita:

  • Paikallinen todennus sähköpostilla
  • Kirjaudu sisään Applella
  • GitHub-todennus
  • Google-todennus
  • Kertaluonteinen salasana (OTP) -todennus

Paketti on hyvin muokattavissa, joten kehittäjät voivat säätää kenttien nimiä ja lauseita vastaamaan sovelluksensa vaatimuksia. Se on suunniteltu integroitumaan saumattomasti Mongoosen kanssa käyttäjien hallintaa varten, mikä tekee siitä ihanteellisen ratkaisun Koa-pohjaisille sovelluksille, jotka tarvitsevat vankan todennuksen.

siro: Elegant Application Shutdown

@ladjs/graceful ratkaisee kriittisen haasteen sulkea Node.js-sovellukset sulavasti. Yli 70 GitHub-tähdellä varustettu paketti varmistaa, että sovelluksesi voi päättyä siististi menettämättä tietoja tai jättämättä yhteyksiä roikkumaan. Tärkeimpiä ominaisuuksia ovat:

  • Tuki kauniisti sulkeville HTTP-palvelimille (Express/Koa/Fastify)
  • Tietokantayhteyksien puhdas sulkeminen (MongoDB/Mongoose)
  • Redis-asiakkaiden asianmukainen sulkeminen
  • Bree-työaikatauluttajien käsittely
  • Tuki mukautetuille sammutuskäsittelijöille
  • Muokattavat aikakatkaisuasetukset
  • Integrointi kirjausjärjestelmiin

Tämä paketti on välttämätön tuotantosovelluksissa, joissa odottamattomat sammutukset voivat johtaa tietojen katoamiseen tai vioittumiseen. Ottamalla käyttöön asianmukaiset sammutusmenettelyt, @ladjs/graceful auttaa varmistamaan sovelluksesi luotettavuuden ja vakauden.

Käyttöaika: avoimen lähdekoodin käyttöajan valvonta

The Päätösajan organisaatio edustaa sitoutumistamme läpinäkyvään avoimen lähdekoodin seurantaan. Pääasiallinen upptime arkistossa on yli 13 000 GitHub-tähteä, joten se on yksi suosituimmista projekteista, joihin osallistumme. Upptime tarjoaa GitHub-käyttöisen käyttöaikamonitorin ja tilasivun, joka toimii täysin ilman palvelinta.

Käytämme Uptimea omalle tilasivullemme osoitteessa https://status.forwardemail.net lähdekoodilla, joka on saatavilla osoitteessa https://github.com/forwardemail/status.forwardemail.net.

Upptimesta erikoisen tekee sen arkkitehtuuri:

  • 100% avoin lähdekoodi: Jokainen komponentti on täysin avoimen lähdekoodin ja muokattavissa.
  • Powered by GitHub: Hyödynnä GitHub-toimintoja, -ongelmia ja -sivuja palvelimettoman seurantaratkaisun luomiseksi.
  • Palvelinta ei tarvita: Toisin kuin perinteiset valvontatyökalut, Upptime ei vaadi sinua käyttämään tai ylläpitämään palvelinta.
  • Automaattinen tilasivu: Luo kauniin tilasivun, jota voidaan isännöidä GitHub-sivuilla.
  • Tehokkaat ilmoitukset: Integroituu useisiin ilmoituskanaviin, mukaan lukien sähköposti, tekstiviestit ja Slack.

Parantaaksemme käyttäjäkokemusta olemme integroineet @octokit/core forwardemail.net-koodikantaan näyttääksesi reaaliaikaiset tilapäivitykset ja tapahtumat suoraan verkkosivustollamme. Tämä integraatio tarjoaa käyttäjillemme selkeän läpinäkyvyyden, jos koko pinossamme (verkkosivusto, API, MongoDB, Redis, SQLite, SMTP, POP3, IMAP, Bree jne.) ilmenee ongelmia, välittömät ilmoitukset, merkkikuvakkeen muutokset, varoitusvärit ja paljon muuta.

@octokit/core-kirjaston avulla voimme noutaa reaaliaikaisia tietoja Upptime GitHub -tietovarastosta, käsitellä niitä ja näyttää ne käyttäjäystävällisellä tavalla. Kun jossakin palvelussa on katkos tai suorituskyky on heikentynyt, käyttäjät saavat välittömästi ilmoituksen visuaalisilla ilmaisimilla ilman, että heidän on poistuttava pääsovelluksesta. Tämä saumaton integrointi varmistaa, että käyttäjillämme on aina ajan tasalla olevaa tietoa järjestelmämme tilasta, mikä lisää läpinäkyvyyttä ja luottamusta.

Upptime on omaksunut sadat organisaatiot, jotka etsivät läpinäkyvää ja luotettavaa tapaa seurata palveluitaan ja viestiä tilasta käyttäjille. Projektin menestys osoittaa, kuinka voimaa on rakentaa työkaluja, jotka hyödyntävät olemassa olevaa infrastruktuuria (tässä tapauksessa GitHubia) yleisten ongelmien ratkaisemiseksi uusilla tavoilla.

Avustuksemme Forward Email -ekosysteemiin

Vaikka kehittäjät käyttävät avoimen lähdekoodin pakettejamme maailmanlaajuisesti, ne muodostavat myös oman Forward Email -palvelumme perustan. Tämä kaksoisrooli – sekä näiden työkalujen luojina että käyttäjinä – antaa meille ainutlaatuisen näkökulman heidän todelliseen sovellukseensa ja edistää jatkuvaa parantamista.

Paketeista tuotantoon

Matka yksittäisistä pakkauksista yhtenäiseen tuotantojärjestelmään edellyttää huolellista integrointia ja laajentamista. Sähköpostin edelleenlähettämisessä tämä prosessi sisältää:

  • Mukautetut laajennukset: Luomme eteenpäin sähköpostikohtaisia laajennuksia avoimen lähdekoodin paketteihimme, jotka vastaavat ainutlaatuisia vaatimuksiamme.
  • Integrointimallit: Kehitetään malleja näiden pakettien vuorovaikutukseen tuotantoympäristössä.
  • Suorituskyvyn optimoinnit: Suorituskyvyn pullonkaulojen tunnistaminen ja korjaaminen, jotka ilmenevät vain mittakaavassa.
  • Turvallisuuden karkaisu: Lisätään sähköpostin käsittelyyn ja käyttäjien tietosuojaan liittyviä lisäsuojakerroksia.

Tämä työ edustaa tuhansia tunteja kehitystyötä itse ydinpakettien lisäksi, ja tuloksena on vankka, suojattu sähköpostipalvelu, joka hyödyntää avoimen lähdekoodin panostemme parhaita puolia.

Palautesilmukka

Ehkä arvokkain puoli omien pakettiemme käytössä tuotannossa on sen luoma palautesilmukka. Kun kohtaamme rajoituksia tai reunatapauksia Forward Emailissa, emme vain korjaa niitä paikallisesti – parannamme taustalla olevia paketteja, mikä hyödyttää sekä palveluamme että laajempaa yhteisöä.

Tämä lähestymistapa on johtanut lukuisiin parannuksiin:

  • Bree's Graceful Shutdown: Edelleenlähetyssähköpostin tarve ottaa käyttöön nollakatkosaikaa johti Breen parannettuihin sirollisiin sammutusominaisuuksiin.
  • Roskapostin skannerin kuvioiden tunnistus: Edelleenlähetyssähköpostissa havaitut todelliset roskapostimallit ovat ilmoittaneet roskapostinlukijan tunnistusalgoritmeille.
  • Mökin suorituskyvyn optimoinnit: Suurten volyymien kirjautuminen tuotantoon paljasti Cabinissa optimointimahdollisuuksia, joista hyötyvät kaikki käyttäjät.

Ylläpitämällä tätä kiertokulkua avoimen lähdekoodin työmme ja tuotantopalvelumme välillä varmistamme, että pakettimme pysyvät käytännöllisinä, taisteluissa testatuina ratkaisuina teoreettisten toteutusten sijaan.

Välitä sähköpostin ydinperiaatteet: huippuosaamisen perusta

Välitä sähköposti on suunniteltu ydinperiaatteiden mukaan, jotka ohjaavat kaikkia kehityspäätöksiämme. Nämä periaatteet, yksityiskohtaisesti meidän verkkosivuilla, varmista, että palvelumme on edelleen kehittäjäystävällinen, turvallinen ja keskittyy käyttäjien yksityisyyteen.

Aina kehittäjäystävällinen, turvallisuuteen keskittyvä ja läpinäkyvä

Ensimmäinen ja tärkein periaatteemme on luoda ohjelmistoja, jotka ovat kehittäjäystävällisiä ja säilyttävät korkeimmat turvallisuus- ja yksityisyysstandardit. Uskomme, että teknisen huippuosaamisen ei tulisi koskaan tapahtua käytettävyyden kustannuksella ja että läpinäkyvyys rakentaa luottamusta yhteisöömme.

Tämä periaate näkyy yksityiskohtaisessa dokumentaatiossamme, selkeissä virheilmoituksissamme ja avoimessa viestinnässämme sekä onnistumisista että haasteista. Tekemällä koko koodikantaamme avoimen lähdekoodin, kutsumme tarkastukseen ja yhteistyöhön, mikä vahvistaa sekä ohjelmistojamme että laajempaa ekosysteemiä.

Aika-testattujen ohjelmistokehitysperiaatteiden noudattaminen

Noudatamme useita vakiintuneita ohjelmistokehityksen periaatteita, jotka ovat osoittaneet arvonsa vuosikymmenten aikana:

  • MVC: huolenaiheiden erottelu malli-näkymä-ohjain-mallin avulla
  • Unix-filosofia: Modulaaristen komponenttien luominen, jotka tekevät yhden asian hyvin
  • KISS: Pidä se yksinkertaisena ja suoraviivaisena
  • DRY: Älä toista itseäsi edistämällä koodin uudelleenkäyttöä
  • YAGNI: Et tarvitse sitä, välttäen ennenaikaisen optimoinnin
  • Kaksitoista tekijää: Parhaiden käytäntöjen noudattaminen nykyaikaisten, skaalautuvien sovellusten rakentamiseen
  • Occamin partaveitsi: Yksinkertaisimman ratkaisun valitseminen, joka täyttää vaatimukset
  • Dogfooding: Käytämme laajasti omia tuotteitamme

Nämä periaatteet eivät ole vain teoreettisia käsitteitä, vaan ne on sisällytetty päivittäisiin kehityskäytäntöihimme. Noudatuksemme Unix-filosofiaan näkyy esimerkiksi npm-pakettimme rakenteesta: pieniä, kohdennettuja moduuleja, jotka voidaan koota yhteen ratkaisemaan monimutkaisia ongelmia.

Kohdennettuna romahtaneeseen, bootstrapped-kehittäjään

Kohdistamme erityisesti romutettuja, bootstrapped- ja ramen kannattavaa kehittäjä. Tämä painopiste muokkaa kaikkea hinnoittelumallistamme teknisiin päätöksiimme. Ymmärrämme tuotteiden rakentamisen haasteet rajallisilla resursseilla, koska olemme olleet siellä itse.

Tämä periaate on erityisen tärkeä siinä, miten lähestymme avointa lähdekoodia. Luomme ja ylläpidämme paketteja, jotka ratkaisevat todellisia ongelmia kehittäjille ilman yritysbudjettia, jolloin tehokkaat työkalut ovat kaikkien saatavilla heidän resursseistaan riippumatta.

Käytännön periaatteet: Edelleenlähetyskoodikanta

Nämä periaatteet näkyvät selvästi Forward Email -koodikannassa. Package.json-tiedostomme paljastaa harkitun valikoiman riippuvuuksia, joista jokainen on valittu perusarvojemme mukaiseksi:

  • Turvallisuuspainotteiset paketit, kuten mailauth sähköpostin todentamista varten
  • Kehittäjäystävälliset työkalut, kuten preview-email helpottamaan virheenkorjausta
  • Modulaariset komponentit, kuten erilaiset p-* laitokset Sindre Sorhusilta

Noudattamalla näitä periaatteita johdonmukaisesti ajan mittaan olemme rakentaneet palvelun, johon kehittäjät voivat luottaa sähköpostiinfrastruktuurissaan. Se on turvallinen, luotettava ja avoimen lähdekoodin yhteisön arvojen mukainen.

Yksityisyys suunnittelusta

Tietosuoja ei ole jälkikäteen tai markkinointiominaisuus Forward Emailille – se on suunnittelun perusperiaate, joka kertoo palvelumme ja koodimme kaikista näkökohdista:

  • Nollakäyttöinen salaus: Olemme ottaneet käyttöön järjestelmiä, jotka tekevät käyttäjien sähköpostien lukemisen teknisesti mahdottomaksi.
  • Minimaalinen tiedonkeruu: Keräämme vain palvelumme tarjoamiseen tarvittavat tiedot, emme sen enempää.
  • Läpinäkyvät käytännöt: Tietosuojakäytäntömme on kirjoitettu selkeällä, ymmärrettävällä kielellä ilman lakisääteistä ammattikieltä.
  • Avoimen lähdekoodin vahvistus: Avoimen lähdekoodin koodipohjamme avulla tietoturvatutkijat voivat tarkistaa tietosuojavaatimuksemme.

Tämä sitoumus ulottuu avoimen lähdekoodin paketteihimme, jotka on suunniteltu turvallisuuden ja tietosuojan parhailla käytännöillä alusta alkaen.

Kestävä avoin lähdekoodi

Uskomme, että avoimen lähdekoodin ohjelmistot tarvitsevat kestäviä malleja menestyäkseen pitkällä aikavälillä. Lähestymistapamme sisältää:

  • Kaupallinen tuki: Tarjoamme ensiluokkaista tukea ja palveluita avoimen lähdekoodin työkalujemme ympärillä.
  • Tasapainoinen lisensointi: Käyttämällä lisenssejä, jotka suojaavat sekä käyttäjien vapautta että projektin kestävyyttä.
  • Yhteisön sitoutuminen: Aktiivinen vuorovaikutus avustajien kanssa tukevan yhteisön rakentamiseksi.
  • Läpinäkyvät tiekartat: Kehityssuunnitelmiemme jakaminen, jotta käyttäjät voivat suunnitella niitä.

Keskittymällä kestävyyteen varmistamme, että avoimen lähdekoodin panoksemme voivat edelleen kasvaa ja kehittyä ajan myötä sen sijaan, että laiminlyödään.

Numerot eivät valehtele: Hämmästyttävät npm-lataustilastot

Kun puhumme avoimen lähdekoodin ohjelmistojen vaikutuksista, lataustilastot tarjoavat konkreettisen osoituksen omaksumisesta ja luottamuksesta. Monet paketeista, joita autamme ylläpitämään, ovat saavuttaneet mittakaavan, jota harvat avoimen lähdekoodin projektit koskaan saavuttavat, ja yhdistettyjen latausten määrä on miljardeja.

Top npm Packages by Downloads

[!TÄRKEÄÄ] Vaikka olemmekin ylpeitä voidessamme auttaa ylläpitämään useita paljon ladattuja paketteja JavaScript-ekosysteemissä, haluamme tunnustaa, että monet näistä paketeista ovat alun perin muiden lahjakkaiden kehittäjien luomia. Superagentin ja supertestin kaltaiset paketit loi alun perin TJ Holowaychuk, jonka tuottelias panos avoimeen lähdekoodiin on vaikuttanut Node.js-ekosysteemin muotoiluun.

Lintuperspektiivistä näkemyksemme vaikutuksestamme

Vain kahden kuukauden helmikuusta maaliskuuhun 2025 välisenä aikana parhaimmat paketit, joihin osallistumme ja autamme ylläpitämään tallennettuja huikeita latausmääriä:

[!HUOM] Useilla muilla paketeilla, joita autamme ylläpitämään, mutta joita emme ole luoneet, on vielä suurempi latausmäärä, mukaan lukien form-data (yli 738 miljoonaa latausta), toidentifier (yli 309 miljoonaa latausta), stackframe (yli 116 miljoonaa latausta) ja error-stack-parser (yli 113 miljoonaa latausta). Meillä on kunnia olla mukana näissä paketeissa kunnioittaen samalla niiden alkuperäisten tekijöiden työtä.

Nämä eivät ole vain vaikuttavia lukuja – ne edustavat todellisia kehittäjiä, jotka ratkaisevat todellisia ongelmia koodilla, jota autamme ylläpitämään. Jokainen lataus on esimerkki, jossa nämä paketit ovat auttaneet jotakuta rakentamaan jotain merkityksellistä harrastajaprojekteista miljoonien käyttämiin yrityssovelluksiin.

Package Categories Distribution

Päivittäinen vaikutus mittakaavassa

Päivittäiset lataustavat paljastavat jatkuvan, suuren volyymin käytön, ja huiput saavuttavat miljoonia latauksia päivässä[^13]. Tämä johdonmukaisuus kertoo näiden pakettien vakaudesta ja luotettavuudesta – kehittäjät eivät vain kokeile niitä; ne integroivat ne ydintyönkulkuihinsa ja ovat niistä riippuvaisia päivästä toiseen.

Viikoittaiset latausmallit osoittavat vieläkin vaikuttavampia lukuja, jotka vaihtelevat jatkuvasti kymmenien miljoonien latausten paikkeilla viikossa[^14]. Tämä edustaa valtavaa jalanjälkeä JavaScript-ekosysteemissä, kun nämä paketit toimivat tuotantoympäristöissä ympäri maailmaa.

Raakalukujen ulkopuolella

Vaikka lataustilastot ovat itsessään vaikuttavia, ne kertovat syvemmän tarinan luottamuksesta, jota yhteisö kohdistaa näihin paketteihin. Pakettien säilyttäminen tässä mittakaavassa edellyttää horjumatonta sitoutumista:

  • Taaksepäin yhteensopivuus: Muutoksia on harkittava huolellisesti, jotta vältetään olemassa olevien toteutusten rikkoutuminen.
  • Turvallisuus: Miljoonien sovellusten ollessa riippuvaisia näistä paketeista, tietoturva-aukoilla voi olla kauaskantoisia seurauksia.
  • Suorituskyky: Tässä mittakaavassa pienilläkin suorituskyvyn parannuksilla voi olla merkittäviä kokonaishyötyjä.
  • Dokumentaatio: Selkeä ja kattava dokumentaatio on välttämätön kaikentasoisten kehittäjien käyttämille paketeille.

Latausmäärien jatkuva kasvu ajan myötä heijastaa onnistumista näiden sitoumusten täyttämisessä ja luottamuksen rakentamisessa kehittäjäyhteisöön luotettavien, hyvin ylläpidettyjen pakettien avulla.

Ekosysteemin tukeminen: avoimen lähdekoodin sponsorointimme

[!KÄRKI] Avoimen lähdekoodin kestävä kehitys ei ole vain koodin lisäämistä, vaan myös kriittistä infrastruktuuria ylläpitävien kehittäjien tukemista.

Sen lisäksi, että annamme suoran panoksen JavaScript-ekosysteemiin, olemme ylpeitä voidessamme sponsoroida merkittäviä Node.js-avustajia, joiden työ muodostaa perustan monille nykyaikaisille sovelluksille. Sponsoreihimme kuuluvat:

Andris Reinman: Sähköpostiinfrastruktuurin edelläkävijä

Andris Reinman on luoja Muistipostittaja, Node.js:n suosituin sähköpostin lähetyskirjasto, jolla on yli 14 miljoonaa viikoittaista latausta[^15]. Hänen työnsä ulottuu muihin kriittisiin sähköpostiinfrastruktuurin osiin, kuten SMTP-palvelin, Mailparser, ja WildAnkka.

Sponsorointimme auttaa varmistamaan näiden keskeisten työkalujen jatkuvan ylläpidon ja kehittämisen, jotka tukevat sähköpostiviestintää lukemattomille Node.js-sovelluksille, mukaan lukien oma Forward Email -palvelumme.

Sindre Sorhus: Utility Package Mastermind

Sindre Sorhus on yksi tuotteliasimmista avoimen lähdekoodin avustajista JavaScript-ekosysteemissä, ja hänen nimensä on yli 1 000 npm-pakettia. Hänen apuohjelmat pitävät p-kartta, p-yritä uudelleen, ja on-stream ovat perustavanlaatuisia rakennuspalikoita, joita käytetään kaikkialla Node.js-ekosysteemissä.

Sponsoroimalla Sindren työtä autamme ylläpitämään näiden kriittisten apuohjelmien kehitystä, jotka tekevät JavaScript-kehityksestä tehokkaampaa ja luotettavampaa.

Nämä sponsoroinnit kuvastavat sitoutumistamme laajempaan avoimen lähdekoodin ekosysteemiin. Ymmärrämme, että oma menestymisemme rakentuu näiden ja muiden tekijöiden luomalle perustalle, ja olemme sitoutuneet varmistamaan koko ekosysteemin kestävyyden.

JavaScript-ekosysteemin tietoturva-aukkojen paljastaminen

Sitoutumisemme avoimeen lähdekoodiin ulottuu ominaisuuksien kehittämisen lisäksi myös tietoturva-aukkojen tunnistamiseen ja korjaamiseen, jotka voivat vaikuttaa miljooniin kehittäjiin. Useat merkittävimmistä panoksistamme JavaScript-ekosysteemiin ovat olleet turvallisuuden alalla.

Koa-reitittimen pelastus

Helmikuussa 2019 Nick havaitsi kriittisen ongelman suositun koa-reititinpaketin ylläpidossa. Kuten hän uutisoi Hacker News, paketin alkuperäinen ylläpitäjä oli hylännyt, mikä jätti tietoturva-aukkoja korjaamatta ja yhteisön ilman päivityksiä.

[!VAROITUS] Hylätyt paketit, joissa on tietoturva-aukkoja, aiheuttavat merkittäviä riskejä koko ekosysteemille, varsinkin kun niitä ladataan miljoonia kertoja viikossa.

Vastauksena Nick loi @koa/reititin ja auttoi varoittamaan yhteisöä tilanteesta. Hän on ylläpitänyt tätä kriittistä pakettia siitä lähtien varmistaen, että Koa-käyttäjillä on turvallinen ja hyvin hoidettu reititysratkaisu.

ReDoS-haavoittuvuuksien korjaaminen

Vuonna 2020 Nick tunnisti kriittisen tilanteen ja otti asiaan kantaa Regular Expression Denial of Service (ReDoS) haavoittuvuus laajalti käytetyissä url-regex paketti. Tämä haavoittuvuus (SNYK-JS-URLREGEX-569472).

Sen sijaan, että vain korjaisi olemassa olevaa pakettia, Nick loi url-regex-safe, täysin uudelleen kirjoitettu toteutus, joka korjaa haavoittuvuuden säilyttäen samalla yhteensopivuuden alkuperäisen API:n kanssa. Hän julkaisi myös a kattava blogikirjoitus selittää haavoittuvuuden ja miten sitä voidaan lieventää.

Tämä työ osoittaa lähestymistapamme turvallisuuteen: ei vain korjata ongelmia, vaan kouluttaa yhteisöä ja tarjota vankkoja vaihtoehtoja, jotka estävät samanlaisia ongelmia tulevaisuudessa.

Node.js:n ja Chromium Securityn kannattaminen

Nick on myös aktiivisesti ajanut turvallisuuden parantamista laajemmassa ekosysteemissä. Elokuussa 2020 hän havaitsi Node.js:ssä merkittävän tietoturvaongelman, joka liittyi sen HTTP-otsikoiden käsittelyyn ja josta ilmoitettiin Rekisteri.

Tämä ongelma, joka johtui Chromiumin korjaustiedostosta, saattaa antaa hyökkääjille mahdollisuuden ohittaa turvatoimenpiteet. Nickin tuki auttoi varmistamaan, että ongelmaan puututtiin ripeästi, mikä suojasi miljoonia Node.js-sovelluksia mahdolliselta hyväksikäytöltä.

npm-infrastruktuurin turvaaminen

Myöhemmin samassa kuussa Nick tunnisti toisen kriittisen tietoturvaongelman, tällä kertaa npm:n sähköpostiinfrastruktuurissa. Kuten on raportoitu Rekisteri, npm ei ottanut kunnolla käyttöön DMARC-, SPF- ja DKIM-sähköpostitodennusprotokollia, minkä vuoksi hyökkääjät saattoivat lähettää tietojenkalasteluviestejä, jotka näyttivät tulevan npm:ltä.

Nickin raportti johti parannuksiin npm:n sähköpostin suojausasennossa, mikä suojaa miljoonia kehittäjiä, jotka luottavat npm:ään pakettien hallinnassa, mahdollisilta tietojenkalasteluhyökkäyksiä vastaan.

Avustuksemme Forward Email -ekosysteemiin

Forward Email on rakennettu useiden kriittisten avoimen lähdekoodin projektien päälle, mukaan lukien Nodemailer, WildDuck ja mailauth. Tiimimme on osallistunut merkittävästi näihin projekteihin auttaen tunnistamaan ja korjaamaan syvällisiä ongelmia, jotka vaikuttavat sähköpostin toimitukseen ja turvallisuuteen.

Nodemailerin ydintoimintojen parantaminen

Muistipostittaja on Node.js-sähköpostin lähetyksen selkäranka, ja panoksemme ovat tehneet siitä tehokkaamman:

  • SMTP-palvelimen parannukset: Olemme korjanneet jäsennysvirheet, virrankäsittelyongelmat ja TLS-määritysongelmat SMTP-palvelinkomponentissa[^16][^17].
  • Mail Parser -parannukset: Olemme käsitelleet merkkijonon dekoodausvirheet ja jäsennysongelmat, jotka voivat aiheuttaa sähköpostin käsittelyvirheitä[^18][^19].

Nämä panokset varmistavat, että Nodemailer pysyy luotettavana perustana sähköpostin käsittelylle Node.js-sovelluksissa, mukaan lukien sähköpostin edelleenlähetys.

Sähköpostin todennuksen edistäminen Mailauthin avulla

Mailauth tarjoaa kriittisiä sähköpostin todennustoimintoja, ja panoksemme ovat parantaneet merkittävästi sen ominaisuuksia:

  • DKIM-vahvistuksen parannuksia: Löysimme ja raportoimme, että X/Twitterillä oli DNS-välimuistiongelmia, jotka aiheuttivat DKIM-virheen heidän lähteville viesteilleen. Ilmoitimme siitä Hacker Onessa[^20].
  • DMARC- ja ARC-parannukset: Olemme korjanneet DMARC- ja ARC-vahvistuksen ongelmat, jotka voivat johtaa vääriin todennustuloksiin[^21][^22].
  • Suorituskyvyn optimoinnit: Olemme lisänneet optimointeja, jotka parantavat sähköpostin todennusprosessien suorituskykyä[^23][^24][^25][^26].

Nämä parannukset auttavat varmistamaan, että sähköpostin todennus on tarkka ja luotettava ja suojaa käyttäjiä tietojenkalastelu- ja huijaushyökkäyksiltä.

Tärkeimmät käyttöajan parannukset

Avustuksemme Upptimeen ovat:

  • SSL-sertifikaattien valvonta: Lisäsimme toiminnot SSL-varmenteen vanhenemisen valvontaan, mikä estäisi vanhentuneiden varmenteiden aiheuttamat odottamattomat seisokit[^27].
  • Useiden SMS-numeroiden tuki: Otimme käyttöön tuen useiden tiimin jäsenten hälyttämiseen tekstiviestillä, kun tapauksia sattuu, mikä parantaa vasteaikoja[^28].
  • IPv6-tarkistuskorjauksia: Korjasimme IPv6-yhteystarkistuksiin liittyvät ongelmat varmistaen tarkemman valvonnan nykyaikaisissa verkkoympäristöissä[^29].
  • Tumman/vaalean tilan tuki: Lisäsimme teematuen parantaaksemme tilasivujen käyttökokemusta[^31].
  • Parempi TCP-Ping-tuki: Paransimme TCP ping -toimintoa tarjotaksemme luotettavamman yhteyden testauksen[^32].

Nämä parannukset eivät hyödy ainoastaan Forward Emailin tilanvalvontaa, vaan ne ovat saatavilla koko Upptime-käyttäjien yhteisölle, mikä osoittaa sitoutumisemme parantaa työkaluja, joista olemme riippuvaisia.

Liima, joka pitää kaiken yhdessä: räätälöity koodi mittakaavassa

Vaikka npm-pakettimme ja panoksemme olemassa oleviin projekteihin ovat merkittäviä, juuri nämä komponentit yhdistävä mukautettu koodi on se, joka todella esittelee teknistä asiantuntemuksemme. Forward Email -koodikanta edustaa vuosikymmenen kehitystyötä, joka juontaa juurensa vuoteen 2017, jolloin projekti alkoi ilmainen sähköpostin edelleenlähetys ennen kuin se yhdistettiin monorepoksi.

Valtava kehitystyö

Tämän mukautetun integrointikoodin laajuus on vaikuttava:

  • Maksut yhteensä: Yli 3 217 sitoumusta
  • Koodikannan koko: Yli 421 545 koodiriviä JavaScript-, Pug-, CSS- ja JSON-tiedostoissa[^33]

Tämä edustaa tuhansia tunteja kehitystyötä, virheenkorjausistuntoja ja suorituskyvyn optimointia. Se on "salainen kastike", joka muuttaa yksittäiset paketit yhtenäiseksi, luotettavaksi palveluksi, jota tuhannet asiakkaat käyttävät päivittäin.

Keskeisten riippuvuuksien integrointi

Forward Email -koodikanta yhdistää lukuisia riippuvuuksia saumattomaksi kokonaisuudeksi:

  • Sähköpostin käsittely: Integroi Nodemailerin lähettämiseen, SMTP-palvelimen vastaanottamiseen ja Mailparserin jäsentämiseen
  • Todennus: Käyttää Mailauthia DKIM-, SPF-, DMARC- ja ARC-vahvistukseen
  • DNS-resoluutio: Hyödynnä Tangerinea DNS-over-HTTPS:ään globaalilla välimuistilla
  • MX-yhteys: Käyttää mx-connectia Tangerine-integraation kanssa luotettavien sähköpostipalvelinyhteyksien luomiseksi
  • Työaikataulu: Työllistää Breen luotettavaan taustatehtävien käsittelyyn työntekijäsäikeillä
  • Mallintaminen: Käyttää sähköpostimalleja verkkosivuston tyylisivujen uudelleenkäyttöön asiakasviestinnässä
  • Sähköpostin tallennustila: Toteuttaa yksilöllisesti salatut SQLite-postilaatikot käyttämällä parempia sqlite3-multiple-salauksia ChaCha20-Poly1305-salauksella kvanttiturvallisen yksityisyyden takaamiseksi, mikä varmistaa täydellisen eristämisen käyttäjien välillä ja sen, että vain käyttäjällä on pääsy postilaatikkoonsa

Jokainen näistä integraatioista edellyttää reunatapausten, suorituskykyvaikutusten ja turvallisuusnäkökohtien huolellista harkintaa. Tuloksena on vankka järjestelmä, joka käsittelee miljoonia sähköpostitapahtumia luotettavasti. SQLite-toteutuksellamme hyödynnetään myös msgpackria tehokkaaseen binääriserialisointiin ja WebSocketsia (ws:n kautta) reaaliaikaisiin tilapäivityksiin koko infrastruktuurissamme.

DNS-infrastruktuuri, jossa on Tangerine ja mx-connect

Forward Emailin infrastruktuurin kriittinen osa on DNS-ratkaisujärjestelmämme, joka on rakennettu kahden keskeisen paketin ympärille:

  • Tangeriini: Node.js DNS-over-HTTPS -toteutus korvaa tavallisen DNS-selvittimen sisäänrakennetulla uudelleenyrityksellä, aikakatkaisuilla, älykkäällä palvelimen kierrolla ja välimuistin tuella.

  • mx-connect: Tämä paketti muodostaa TCP-yhteydet MX-palvelimiin, ottamalla kohdeverkkotunnuksen tai -sähköpostiosoitteen, ratkaisemalla asianmukaiset MX-palvelimet ja muodostamalla yhteyden niihin tärkeysjärjestyksessä.

Olemme integroineet Tangerinen mx-connect kautta vetopyyntö #4, varmistaen sovellustason DNS HTTP-pyynnöt koko sähköpostin edelleenlähetyksen ajan. Tämä tarjoaa DNS:n maailmanlaajuisen välimuistin mittakaavassa 1:1 johdonmukaisesti kaikilla alueilla, sovelluksissa tai prosesseissa – kriittistä luotettavalle sähköpostin toimitukselle hajautetussa järjestelmässä.

Yrityksen vaikutus: avoimesta lähdekoodista missiokriittisiin ratkaisuihin

Kymmenen vuotta kestäneen avoimen lähdekoodin kehitysmatkamme huipentuma on mahdollistanut Forward Emailin palvelemisen yksittäisten kehittäjien lisäksi myös suuria yrityksiä ja oppilaitoksia, jotka muodostavat itse avoimen lähdekoodin liikkeen selkärangan.

Tapaustutkimuksia mission kannalta kriittisestä sähköpostiinfrastruktuurista

Sitoutumisemme luotettavuuteen, yksityisyyteen ja avoimen lähdekoodin periaatteisiin on tehnyt Forward Emailista luotettavan valinnan organisaatioille, joilla on vaativat sähköpostivaatimukset:

  • Oppilaitokset: Kuten meidän alumnien sähköpostin edelleenlähetyksen tapaustutkimus, suuret yliopistot luottavat infrastruktuuriimme ylläpitääkseen elinikäisiä yhteyksiä satoihin tuhansiin alumniin luotettavien sähköpostin edelleenlähetyspalvelujen avulla.

  • Enterprise Linux -ratkaisut: Kanoninen Ubuntu sähköposti yritystapaustutkimus osoittaa, kuinka avoimen lähdekoodin lähestymistapamme sopii täydellisesti yritysten Linux-toimittajien tarpeisiin ja tarjoaa heille heidän tarvitsemaansa läpinäkyvyyttä ja hallintaa.

  • Avoimen lähdekoodin säätiöt: Ehkä kaikkein vahvistavin on kumppanuus Linux Foundationin kanssa, kuten dokumentissa on dokumentoitu Linux Foundationin sähköpostin yritystapaustutkimus, jossa palvelumme mahdollistaa viestinnän juuri Linux-kehitystä valvovalle organisaatiolle.

Monien vuosien huolella ylläpidettyjen avoimen lähdekoodin pakettiemme ansiosta olemme pystyneet rakentamaan sähköpostipalvelun, joka tukee nyt juuri niitä yhteisöjä ja organisaatioita, jotka kannattavat avoimen lähdekoodin ohjelmistoja. Tämä täyden ympyrän matka – yksittäisten pakettien tuottamisesta yritystason sähköpostiinfrastruktuurin tehostamiseen avoimen lähdekoodin johtajille – edustaa ohjelmistokehitykseen liittyvän lähestymistapamme lopullista validointia.

Avoimen lähdekoodin vuosikymmen: Katse eteenpäin

Kun katsomme taaksepäin vuosikymmenen avoimen lähdekoodin panoksia ja eteenpäin seuraaviin kymmeneen vuoteen, olemme täynnä kiitollisuutta yhteisöstä, joka on tukenut työtämme, ja innostusta tulevasta.

Matkamme yksittäisistä pakettien tekijöistä suurten yritysten ja avoimen lähdekoodin säätiöiden käyttämän kattavan sähköpostiinfrastruktuurin ylläpitäjiin on ollut merkittävä. Se on osoitus avoimen lähdekoodin kehityksen voimasta ja vaikutuksista, joita harkituilla, hyvin ylläpidetyillä ohjelmistoilla voi olla laajempaan ekosysteemiin.

Tulevina vuosina olemme sitoutuneet:

  • Jatkamme olemassa olevien pakettiemme ylläpitoa ja parantamistavarmistaen, että ne pysyvät luotettavina työkaluina kehittäjille maailmanlaajuisesti.
  • Laajennamme panostamme kriittisiin infrastruktuuriprojekteihin, erityisesti sähköpostin ja tietoturvan aloilla.
  • Edelleenlähetystoimintojen parantaminen säilyttäen samalla sitoutumisemme yksityisyyteen, turvallisuuteen ja avoimuuteen.
  • Uuden avoimen lähdekoodin tekijöiden sukupolven tukeminen mentoroinnin, sponsoroinnin ja yhteisön osallistumisen kautta.

Uskomme, että ohjelmistokehityksen tulevaisuus on avoin, yhteistyökykyinen ja luottamuksen pohjalle rakennettu. Jatkamalla korkealaatuisten, turvallisuuteen keskittyvien pakettien lisäämistä JavaScript-ekosysteemiin, toivomme saavamme pienen osuuden tulevaisuuden rakentamisessa.

Kiitos kaikille, jotka ovat käyttäneet pakettejamme, osallistuneet projekteihimme, raportoineet ongelmista tai vain levittäneet sanaa työstämme. Tukesi on mahdollistanut tämän vuosikymmenen vaikuttamisen, ja olemme innoissamme nähdessämme, mitä voimme saada yhdessä aikaan seuraavan kymmenen vuoden aikana.

[^1]: npm-lataustilastot matkustamolle, huhtikuu 2025 [^2]: npm-lataustilastot kohteelle bson-objectid, helmi-maaliskuu 2025 [^3]: npm-lataustilastot kohteelle url-regex-safe, huhtikuu 2025 [^4]: GitHub-tähdet forwardemail/forwardemail.net-sivustolle huhtikuusta 2025 alkaen [^5]: npm-lataustilastot esikatselua varten, huhtikuu 2025 [^7]: npm-lataustilastot superagentille, helmi-maaliskuu 2025 [^8]: npm-lataustilastot supertestille, helmi-maaliskuu 2025 [^9]: npm-lataustilastot esikatselua varten, helmi-maaliskuu 2025 [^10]: npm-lataustilastot matkustamolle, helmi-maaliskuu 2025 [^11]: npm-lataustilastot kohteelle url-regex-safe, helmi-maaliskuu 2025 [^12]: npm-lataustilastot roskapostiskannerille, helmi-maaliskuu 2025 [^13]: Päivittäiset latausmallit npm-tilastoista, huhtikuu 2025 [^14]: Viikoittaiset latausmallit npm-tilastoista, huhtikuu 2025 [^15]: npm-lataustilastot nodemailerille, huhtikuu 2025 [^16]: https://github.com/nodemailer/smtp-server/issues/155 [^17]: https://github.com/nodemailer/smtp-server/issues/node-v12-requires-tls-min [^18]: https://github.com/nodemailer/mailparser/issues/261 [^19]: https://github.com/nodemailer/nodemailer/issues/1102 [^20]: https://github.com/postalsys/mailauth/issues/30 [^21]: https://github.com/postalsys/mailauth/issues/58 [^22]: https://github.com/postalsys/mailauth/issues/48 [^23]: https://github.com/postalsys/mailauth/issues/74 [^24]: https://github.com/postalsys/mailauth/issues/75 [^25]: https://github.com/postalsys/mailauth/issues/60 [^26]: https://github.com/postalsys/mailauth/issues/73 [^27]: Perustuu Upptime-tietovaraston GitHub-ongelmiin [^28]: Perustuu Upptime-tietovaraston GitHub-ongelmiin [^29]: Perustuu Upptime-tietovaraston GitHub-ongelmiin [^30]: breen npm-lataustilastot, helmi-maaliskuu 2025 [^31]: Perustuu GitHub-pyyntöihin Upptimelle [^32]: Perustuu GitHubin Upptime-pyyntöihin [^34]: npm lataustilastot koalle, helmi-maaliskuu 2025 [^35]: npm-lataustilastot kohteelle @koa/router, helmi-maaliskuu 2025 [^36]: npm-lataustilastot koa-reitittimelle, helmi-maaliskuu 2025 [^37]: npm-lataustilastot kohteelle url-regex, helmi-maaliskuu 2025 [^38]: npm lataustilastot käyttäjälle @breejs/myöhemmin, helmi-maaliskuu 2025 [^39]: npm-lataustilastot sähköpostimalleja varten, helmi-maaliskuu 2025 [^40]: npm-lataustilastot get-poluille, helmi-maaliskuu 2025 [^41]: dotenv-parse-muuttujien npm-lataustilastot, helmi-maaliskuu 2025 [^42]: npm lataustilastot kohteelle @koa/multer, helmi-maaliskuu 2025