[{"data":1,"prerenderedAt":650},["ShallowReactive",2],{"\u002Fopen-source\u002Frivu":3,"\u002Fopen-source\u002Frivu-surround":639},{"id":4,"title":5,"body":6,"description":623,"extension":624,"icon":625,"links":626,"meta":631,"navigation":122,"path":632,"seo":633,"stem":634,"tags":635,"__hash__":638},"openSource\u002Fopen-source\u002Frivu.md","Rivu",{"type":7,"value":8,"toc":619},"minimark",[9,13,16,38,48,53,56,603,607,615],[10,11,12],"p",{},"Rivu is a modern TypeScript library for generating RSS 2.0 feeds\nprogrammatically. It enforces strict type safety, validates required channel\nmetadata and produces a fully compliant RSS feed as an XML document.",[10,14,15],{},"The library provides the following features:",[17,18,19,23,26,29,32,35],"ol",{},[20,21,22],"li",{},"100% RSS 2.0 compliant output.",[20,24,25],{},"Lightweight and fast (based on Node.js).",[20,27,28],{},"Fully type-safe using TypeScript interfaces.",[20,30,31],{},"Strict validation for required RSS channel fields.",[20,33,34],{},"Custom feed items with rich optional metadata.",[20,36,37],{},"Small footprint and works in Node.js and other JavaScript runtimes.",[10,39,40,41,47],{},"While the library is marked stable and used in production, its feature set is\ncontinuously evolving. If you want or need a specific set of features, create an\nopen discussion for further comments here -\n",[42,43,44],"a",{"href":44,"rel":45},"https:\u002F\u002Fgithub.com\u002Fjarmos-san\u002Frivu\u002Fdiscussions",[46],"nofollow",".",[49,50,52],"h2",{"id":51},"quick-usage-guide","Quick Usage Guide",[10,54,55],{},"To get started with using the package to generate RSS 2.0 feeds for your\nrequirements, follow these instructions:",[17,57,58,83,320],{},[20,59,60,61,65,66],{},"Install the package from the ",[62,63,64],"code",{},"npm"," registry.",[67,68,73],"pre",{"className":69,"code":70,"language":71,"meta":72,"style":72},"language-console shiki shiki-themes github-dark","pnpm add rivu\n","console","",[62,74,75],{"__ignoreMap":72},[76,77,80],"span",{"class":78,"line":79},"line",1,[76,81,70],{"class":82},"sDLfK",[20,84,85,86,89,90],{},"Create a Node.js script (for example, ",[62,87,88],{},"feed.ts",").",[67,91,95],{"className":92,"code":93,"language":94,"meta":72,"style":72},"language-typescript shiki shiki-themes github-dark","import Feed from \"rivu\";\n\nconst feed = new Feed(\n  {\n    title: \"Weburz Engineering Blog\",\n    link: \"https:\u002F\u002Ftech.weburz.com\u002Frss.xml\",\n    description: \"The technical and official engineering blog at Weburz.\",\n    language: \"en-US\",\n    items: [\n      {\n        title: \"Example Blog\",\n        description: \"Lorem Ipsum\",\n        pubDate: new Date(\"2025-10-10\"),\n      },\n    ],\n  },\n  new URL(\"https:\u002F\u002Ftech.weburz.com\u002Frss-stylesheet.xsl\"), \u002F\u002F Optional stylesheet\n);\n\nconsole.log(feed.generate());\n","typescript",[62,96,97,117,124,146,152,164,175,186,197,203,209,220,231,252,258,264,270,291,297,302],{"__ignoreMap":72},[76,98,99,103,107,110,114],{"class":78,"line":79},[76,100,102],{"class":101},"snl16","import",[76,104,106],{"class":105},"s95oV"," Feed ",[76,108,109],{"class":101},"from",[76,111,113],{"class":112},"sU2Wk"," \"rivu\"",[76,115,116],{"class":105},";\n",[76,118,120],{"class":78,"line":119},2,[76,121,123],{"emptyLinePlaceholder":122},true,"\n",[76,125,127,130,133,136,139,143],{"class":78,"line":126},3,[76,128,129],{"class":101},"const",[76,131,132],{"class":82}," feed",[76,134,135],{"class":101}," =",[76,137,138],{"class":101}," new",[76,140,142],{"class":141},"svObZ"," Feed",[76,144,145],{"class":105},"(\n",[76,147,149],{"class":78,"line":148},4,[76,150,151],{"class":105},"  {\n",[76,153,155,158,161],{"class":78,"line":154},5,[76,156,157],{"class":105},"    title: ",[76,159,160],{"class":112},"\"Weburz Engineering Blog\"",[76,162,163],{"class":105},",\n",[76,165,167,170,173],{"class":78,"line":166},6,[76,168,169],{"class":105},"    link: ",[76,171,172],{"class":112},"\"https:\u002F\u002Ftech.weburz.com\u002Frss.xml\"",[76,174,163],{"class":105},[76,176,178,181,184],{"class":78,"line":177},7,[76,179,180],{"class":105},"    description: ",[76,182,183],{"class":112},"\"The technical and official engineering blog at Weburz.\"",[76,185,163],{"class":105},[76,187,189,192,195],{"class":78,"line":188},8,[76,190,191],{"class":105},"    language: ",[76,193,194],{"class":112},"\"en-US\"",[76,196,163],{"class":105},[76,198,200],{"class":78,"line":199},9,[76,201,202],{"class":105},"    items: [\n",[76,204,206],{"class":78,"line":205},10,[76,207,208],{"class":105},"      {\n",[76,210,212,215,218],{"class":78,"line":211},11,[76,213,214],{"class":105},"        title: ",[76,216,217],{"class":112},"\"Example Blog\"",[76,219,163],{"class":105},[76,221,223,226,229],{"class":78,"line":222},12,[76,224,225],{"class":105},"        description: ",[76,227,228],{"class":112},"\"Lorem Ipsum\"",[76,230,163],{"class":105},[76,232,234,237,240,243,246,249],{"class":78,"line":233},13,[76,235,236],{"class":105},"        pubDate: ",[76,238,239],{"class":101},"new",[76,241,242],{"class":141}," Date",[76,244,245],{"class":105},"(",[76,247,248],{"class":112},"\"2025-10-10\"",[76,250,251],{"class":105},"),\n",[76,253,255],{"class":78,"line":254},14,[76,256,257],{"class":105},"      },\n",[76,259,261],{"class":78,"line":260},15,[76,262,263],{"class":105},"    ],\n",[76,265,267],{"class":78,"line":266},16,[76,268,269],{"class":105},"  },\n",[76,271,273,276,279,281,284,287],{"class":78,"line":272},17,[76,274,275],{"class":101},"  new",[76,277,278],{"class":141}," URL",[76,280,245],{"class":105},[76,282,283],{"class":112},"\"https:\u002F\u002Ftech.weburz.com\u002Frss-stylesheet.xsl\"",[76,285,286],{"class":105},"), ",[76,288,290],{"class":289},"sAwPA","\u002F\u002F Optional stylesheet\n",[76,292,294],{"class":78,"line":293},18,[76,295,296],{"class":105},");\n",[76,298,300],{"class":78,"line":299},19,[76,301,123],{"emptyLinePlaceholder":122},[76,303,305,308,311,314,317],{"class":78,"line":304},20,[76,306,307],{"class":105},"console.",[76,309,310],{"class":141},"log",[76,312,313],{"class":105},"(feed.",[76,315,316],{"class":141},"generate",[76,318,319],{"class":105},"());\n",[20,321,322,323,332,335,336],{},"Ensure you've the latest Node.js version installed locally, then execute the\nscript by running:",[67,324,326],{"className":69,"code":325,"language":71,"meta":72,"style":72},"node feed.ts\n",[62,327,328],{"__ignoreMap":72},[76,329,330],{"class":78,"line":79},[76,331,325],{"class":82},[333,334],"br",{},"If everything is working fine and as expected, you will see this output on\nyour console:",[67,337,341],{"className":338,"code":339,"language":340,"meta":72,"style":72},"language-xml shiki shiki-themes github-dark"," \u003C?xml version=\"1.0\"?>\n \u003C?xml-stylesheet type=\"text\u002Fxsl\" href=https:\u002F\u002Ftech.weburz.com\u002Frss-stylesheet.xsl?>\n \u003Crss version=\"2.0\" xmlns:atom=\"http:\u002F\u002Fwww.w3.org\u002F2005\u002FAtom\">\n   \u003Cchannel>\n     \u003Catom:link href=\"https:\u002F\u002Ftech.weburz.com\u002Frss.xml\" rel=\"self\" type=\"application\u002Frss+xml\"\u002F>\n     \u003Ctitle>\u003C![CDATA[Weburz Engineering Blog]]>\u003C\u002Ftitle>\n     \u003Clink>https:\u002F\u002Ftech.weburz.com\u002Frss.xml\u003C\u002Flink>\n     \u003Cdescription>\u003C![CDATA[The technical and official engineering blog at Weburz.]]>\u003C\u002Fdescription>\n     \u003Clanguage>en-US\u003C\u002Flanguage>\n     \u003Citem>\n       \u003Ctitle>\u003C![CDATA[Example Blog]]>\u003C\u002Ftitle>\n       \u003Cdescription>\u003C![CDATA[Lorem Ipsum]]>\u003C\u002Fdescription>\n       \u003CpubDate>Fri Oct 10 2025 05:30:00 GMT+0530 (India Standard Time)\u003C\u002FpubDate>\n     \u003C\u002Fitem>\n   \u003C\u002Fchannel>\n \u003C\u002Frss>\n","xml",[62,342,343,363,384,410,420,452,472,486,504,518,527,545,562,576,585,594],{"__ignoreMap":72},[76,344,345,348,351,354,357,360],{"class":78,"line":79},[76,346,347],{"class":105}," \u003C?",[76,349,340],{"class":350},"s4JwU",[76,352,353],{"class":141}," version",[76,355,356],{"class":105},"=",[76,358,359],{"class":112},"\"1.0\"",[76,361,362],{"class":105},"?>\n",[76,364,365,367,370,373,375,378,381],{"class":78,"line":119},[76,366,347],{"class":105},[76,368,369],{"class":350},"xml-stylesheet",[76,371,372],{"class":141}," type",[76,374,356],{"class":105},[76,376,377],{"class":112},"\"text\u002Fxsl\"",[76,379,380],{"class":141}," href",[76,382,383],{"class":105},"=https:\u002F\u002Ftech.weburz.com\u002Frss-stylesheet.xsl?>\n",[76,385,386,389,392,394,396,399,402,404,407],{"class":78,"line":126},[76,387,388],{"class":105}," \u003C",[76,390,391],{"class":350},"rss",[76,393,353],{"class":141},[76,395,356],{"class":105},[76,397,398],{"class":112},"\"2.0\"",[76,400,401],{"class":141}," xmlns:atom",[76,403,356],{"class":105},[76,405,406],{"class":112},"\"http:\u002F\u002Fwww.w3.org\u002F2005\u002FAtom\"",[76,408,409],{"class":105},">\n",[76,411,412,415,418],{"class":78,"line":148},[76,413,414],{"class":105},"   \u003C",[76,416,417],{"class":350},"channel",[76,419,409],{"class":105},[76,421,422,425,428,430,432,434,437,439,442,444,446,449],{"class":78,"line":154},[76,423,424],{"class":105},"     \u003C",[76,426,427],{"class":350},"atom:link",[76,429,380],{"class":141},[76,431,356],{"class":105},[76,433,172],{"class":112},[76,435,436],{"class":141}," rel",[76,438,356],{"class":105},[76,440,441],{"class":112},"\"self\"",[76,443,372],{"class":141},[76,445,356],{"class":105},[76,447,448],{"class":112},"\"application\u002Frss+xml\"",[76,450,451],{"class":105},"\u002F>\n",[76,453,454,456,459,462,465,468,470],{"class":78,"line":166},[76,455,424],{"class":105},[76,457,458],{"class":350},"title",[76,460,461],{"class":105},">",[76,463,464],{"class":112},"\u003C![CDATA[Weburz Engineering Blog]]>",[76,466,467],{"class":105},"\u003C\u002F",[76,469,458],{"class":350},[76,471,409],{"class":105},[76,473,474,476,479,482,484],{"class":78,"line":177},[76,475,424],{"class":105},[76,477,478],{"class":350},"link",[76,480,481],{"class":105},">https:\u002F\u002Ftech.weburz.com\u002Frss.xml\u003C\u002F",[76,483,478],{"class":350},[76,485,409],{"class":105},[76,487,488,490,493,495,498,500,502],{"class":78,"line":188},[76,489,424],{"class":105},[76,491,492],{"class":350},"description",[76,494,461],{"class":105},[76,496,497],{"class":112},"\u003C![CDATA[The technical and official engineering blog at Weburz.]]>",[76,499,467],{"class":105},[76,501,492],{"class":350},[76,503,409],{"class":105},[76,505,506,508,511,514,516],{"class":78,"line":199},[76,507,424],{"class":105},[76,509,510],{"class":350},"language",[76,512,513],{"class":105},">en-US\u003C\u002F",[76,515,510],{"class":350},[76,517,409],{"class":105},[76,519,520,522,525],{"class":78,"line":205},[76,521,424],{"class":105},[76,523,524],{"class":350},"item",[76,526,409],{"class":105},[76,528,529,532,534,536,539,541,543],{"class":78,"line":211},[76,530,531],{"class":105},"       \u003C",[76,533,458],{"class":350},[76,535,461],{"class":105},[76,537,538],{"class":112},"\u003C![CDATA[Example Blog]]>",[76,540,467],{"class":105},[76,542,458],{"class":350},[76,544,409],{"class":105},[76,546,547,549,551,553,556,558,560],{"class":78,"line":222},[76,548,531],{"class":105},[76,550,492],{"class":350},[76,552,461],{"class":105},[76,554,555],{"class":112},"\u003C![CDATA[Lorem Ipsum]]>",[76,557,467],{"class":105},[76,559,492],{"class":350},[76,561,409],{"class":105},[76,563,564,566,569,572,574],{"class":78,"line":233},[76,565,531],{"class":105},[76,567,568],{"class":350},"pubDate",[76,570,571],{"class":105},">Fri Oct 10 2025 05:30:00 GMT+0530 (India Standard Time)\u003C\u002F",[76,573,568],{"class":350},[76,575,409],{"class":105},[76,577,578,581,583],{"class":78,"line":254},[76,579,580],{"class":105},"     \u003C\u002F",[76,582,524],{"class":350},[76,584,409],{"class":105},[76,586,587,590,592],{"class":78,"line":260},[76,588,589],{"class":105},"   \u003C\u002F",[76,591,417],{"class":350},[76,593,409],{"class":105},[76,595,596,599,601],{"class":78,"line":266},[76,597,598],{"class":105}," \u003C\u002F",[76,600,391],{"class":350},[76,602,409],{"class":105},[49,604,606],{"id":605},"licensing-distribution-rights","Licensing & Distribution Rights",[10,608,609,610,47],{},"The library is built using open-source tools and the source code of the package\nis also publicly shared under an open-source license. You are free to copy,\nmodify and\u002For distribute the package under the T&Cs of the license. You will\nfind more detailed information about the licensing details in the package's\npublic GitHub repository here -\n",[42,611,614],{"href":612,"rel":613},"https:\u002F\u002Fgithub.com\u002Fjarmos-san\u002Frivu",[46],"jarmos-san\u002Frivu",[616,617,618],"style",{},"html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .s4JwU, html code.shiki .s4JwU{--shiki-default:#85E89D}",{"title":72,"searchDepth":119,"depth":119,"links":620},[621,622],{"id":51,"depth":119,"text":52},{"id":605,"depth":119,"text":606},"A modern TypeScript library for generating RSS 2.0 feeds programmatically. It enforces strict type safety, validates required channel metadata and produces a fully compliant RSS feed as an XML document.","md","i-simple-icons-typescript",[627],{"label":628,"icon":629,"to":612,"target":630},"GitHub","i-simple-icons-github","_blank",{},"\u002Fopen-source\u002Frivu",{"title":5,"description":623},"open-source\u002Frivu",[636,637],"TypeScript","RSS","agE5eQNXS3fx-s2wrdqUAGM7TwBmMaLPkK3_X_lcC7c",[640,645],{"title":641,"path":642,"stem":643,"description":644,"children":-1},"@weburz\u002Fparticle-canvas","\u002Fopen-source\u002Fparticle-canvas","open-source\u002Fparticle-canvas","Zero-dependency animated particle canvas for Nuxt 4 — drop-in \u003CParticleCanvas \u002F> component, ~10 KB.",{"title":646,"path":647,"stem":648,"description":649,"children":-1},"Terox","\u002Fopen-source\u002Fterox","open-source\u002Fterox","A cross-platform CLI to scaffold projects from templates — local or straight from GitHub. Single Go binary.",1793701968877]