[{"data":1,"prerenderedAt":745},["ShallowReactive",2],{"project-17733515":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":47,"post_text":50,"what":51,"said":124,"maker_in_thread":221,"shape":233,"grid":237,"attempts":708,"same_week":709,"maker_shows":41,"maker_hidden":737,"reader_version":738,"card":739},"17733515","Ultralight","Lightweight, Pure-GPU HTML UI Renderer for C++","title","Show HN: Ultralight – Lightweight, Pure-GPU HTML UI Renderer for C++","https:\u002F\u002Fultralig.ht","ultralig.ht","adamjs",1533911300,2018,527,170,27,2155,2,"legend","dev_tools","embeddable html ui renderer","library",[24,25,26,27],"html ui renderer","embedded webkit","gpu rendering","c++ ui library","curious",-0.026,{"positive":31,"neutral":32,"mixed":33,"critical":34},10,43,3,12,68,{"idea":37,"performance":39,"execution":42,"docs":43,"design":44,"privacy":45,"pricing":46},{"positive":38,"critical":33},7,{"positive":40,"critical":41},0,1,{"positive":41,"critical":41},{"positive":40,"critical":41},{"positive":40,"critical":41},{"positive":40,"critical":41},{"positive":40,"critical":18},[40,40,48,33,40,40,33,49,33,33,33,41,33,49,48,33,48,40,41,40,33,33,33,41,40,41,40,41,33,33,33,40,33,41,33,41,33,33,33,48],5,4,null,{"problem":52,"audience":65,"pricing":50,"motivation":50,"time_to_build":77,"stack":86,"openness":121,"stage":122,"team_size":123},{"value":53,"source":54,"evidence":55},"Embedding HTML UI in native apps without the size and complexity of Electron or CEF","maker",[56,59,62],{"id":57,"by":11,"text":58},"17734632","It's not a subset, it's the full WebKit layout engine underneath and supports most modern HTML5\u002FCSS\u002FJS. Ultralight can render full websites just fine and is also a full browser…",{"id":60,"by":11,"text":61},"17735034","That's really interesting! Thanks for sharing. There's actually been several HTML UI projects that \"break compatibility with the web\" in varying degrees, with some breaking…",{"id":63,"by":11,"text":64},"17737115","Hi there: Pros (Ultralight is...) - Smaller distributable (25% the size of Electron\u002FCEF or smaller). - Simpler and easier to build (fewer dependencies and smaller codebase). -…",{"value":66,"source":67,"evidence":68},"C++ developers embedding HTML UIs in desktop apps and games","commenter",[69,73],{"id":70,"by":71,"text":72},"17735127","SeanBoocock","Having worked with embedded WebKit in games before, this looks interesting. However, even more than binary size or runtime memory usage, I hope Ultralight optimizes for…",{"id":74,"by":75,"text":76},"17735172","andrewmcwatters","Hi I'm Andrew McWatters, I author lcef, LuaJIT FFI bindings for Chromium Embedded Framework at https:\u002F\u002Fgithub.com\u002FPlanimeter\u002Flcef. I also work on Planimeter's Grid Engine, the…",{"value":78,"source":54,"evidence":79},"4+ years of development",[80,83],{"id":81,"by":11,"text":82},"17734303","It renders most major websites fine, it's similar to WebKit with a few rendering quirks. Here are a few screenshots: - https:\u002F\u002Fultralig.ht\u002Fscreen1.png -…",{"id":84,"by":11,"text":85},"17734426","This thing HAS existed for a while (CEF\u002FElectron, Awesomium, QtWebKit, GTKWebKit, etc.) but the size, memory usage, and flexibility has always been prohibitive. Ultralight…",[87,92,99,105,111,115],{"value":88,"source":54,"evidence":89},"C++",[90],{"id":91},"post",{"value":93,"source":54,"evidence":94},"WebKit (forked WebCore)",[95,96],{"id":60,"by":11,"text":61},{"id":97,"by":11,"text":98},"17735329","It's WebKit-based, not Chromium-based. The only LGPL component of WebKit is WebCore and we have open-sourced our WebCore module here:…",{"value":100,"source":54,"evidence":101},"JavaScriptCore",[102],{"id":103,"by":11,"text":104},"17735717","Yep! In fact we expose JavaScriptCore API directly to users so your native code can call directly into the VM. Check the samples in the SDK.",{"value":106,"source":54,"evidence":107},"Direct3D 11",[108],{"id":109,"by":11,"text":110},"17737542","Ultralight renders to a virtual GPU command buffer for later consumption by a user-space GPUDriver. We ship implementations of GPUDriver for D3D11 and Metal.",{"value":112,"source":54,"evidence":113},"Metal",[114],{"id":109,"by":11,"text":110},{"value":116,"source":54,"evidence":117},"OpenGL",[118],{"id":119,"by":11,"text":120},"17734471","Definitely yes on an OpenGL GPUDriver implementation (it's done), Vulkan is still being explored.","paid","beta","solo",{"praise":125,"objections":137,"requests":154,"questions":179,"alternatives":195},[126],{"value":127,"source":67,"evidence":128},"Smaller than Electron\u002FCEF, useful for embedding",[129,133],{"id":130,"by":131,"text":132},"17735099","tfha","I would really like to replace Electron. It's way too heavy for the types of things we want to use it for. But two things make it extremely valuable: 1. Ability to render css and…",{"id":134,"by":135,"text":136},"17734645","jpm_sd","This is pretty cool. If you told me 20 years ago that the future of UI rendering would be GPU-accelerated HTML... I would have laughed. Heartily.",[138,150],{"value":139,"source":67,"evidence":140},"Proprietary, source closed apart from WebCore",[141,145,149],{"id":142,"by":143,"text":144},"17735167","Sir_Cmpwn","This is proprietary, so it's a non-starter.",{"id":146,"by":147,"text":148},"17734675","solarkraft","A few questions - What does it do to be better (smaller, more memory-efficient) than a browser engine? Which features does one lose? - When will Linux support ship? (Edit: I see…",{"id":74,"by":75,"text":76},{"value":151,"source":67,"evidence":152},"Too similar to Awesomium, which had licensing and update issues",[153],{"id":74,"by":75,"text":76},[155,163,168],{"value":156,"source":67,"evidence":157},"Open source the full project",[158,159],{"id":146,"by":147,"text":148},{"id":160,"by":161,"text":162},"17734703","tabulatouch","Hi, I was a former Awesomium user (.NET bindings) and i think you did a good job, then told everyone to wait for the next version (2 years?) and.. there comes Ultralight which is…",{"value":164,"source":67,"evidence":165},"Linux support",[166,167],{"id":146,"by":147,"text":148},{"id":63,"by":11,"text":64},{"value":169,"source":67,"evidence":170},"Documentation",[171,175],{"id":172,"by":173,"text":174},"17734829","aphextron","Is there any documentation here? How does styling work? Is there DOM manipulation? How is this useful at all?",{"id":176,"by":177,"text":178},"17734630","barkingcat","What does \"The new standard in UI.\" mean? As far as I know it's not really a standard until either many people are using it and\u002For it's ratified as a standard of some kind. Or is…",[180,188],{"value":181,"source":67,"evidence":182},"How does it differ from Sciter, libRocket and EAWebKit",[183,187],{"id":184,"by":185,"text":186},"17734616","ksec","What is the advantage of this compare to Sciter [1], which on the surface is very similar and lighter. [1] https:\u002F\u002Fsciter.com",{"id":74,"by":75,"text":76},{"value":189,"source":67,"evidence":190},"Memory usage compared with Chrome",[191],{"id":192,"by":193,"text":194},"17734575","disqard","This looks like a useful framework. To the creator: Could you help me understand how lightweight this is, in terms of memory usage? For instance, how much memory is used to…",[196,204,209,213,217],{"value":197,"source":67,"evidence":198},"Electron",[199,203],{"id":200,"by":201,"text":202},"17733987","lx3459683","Now someone please explain why this isn't the electron-killer to save us all.",{"id":130,"by":131,"text":132},{"value":205,"source":67,"evidence":206},"CEF",[207,208],{"id":160,"by":161,"text":162},{"id":74,"by":75,"text":76},{"value":210,"source":67,"evidence":211},"Sciter",[212],{"id":184,"by":185,"text":186},{"value":214,"source":67,"evidence":215},"libRocket",[216],{"id":74,"by":75,"text":76},{"value":218,"source":67,"evidence":219},"EAWebKit",[220],{"id":74,"by":75,"text":76},{"comments":16,"answered":222,"key":223},14,[224,227,230],{"id":225,"text":226},"17735487","Not to dismiss work done by the Electron team but Electron essentially wraps Chromium via CEF, so, tangentially it was made possible by Google.",{"id":228,"text":229},"17735979","Haha, I totally wrote that up but deleted it at the risk of sounding too fastidious.",{"id":231,"text":232},"17737273","We've reached peak Hacker News.",{"commenters":234,"max_depth":31,"maker_replies":16,"first_comment_mins":235,"lifespan_hours":236},101,44,128,[238,242,245,248,250,253,254,257,260,261,264,267,271,274,276,280,282,285,289,292,295,298,301,305,308,311,315,319,322,325,329,332,335,337,339,340,344,347,350,354,356,358,361,364,367,370,372,376,380,382,385,389,392,396,398,401,403,405,408,411,413,417,421,422,425,428,431,432,435,437,439,442,444,446,448,450,453,456,459,462,464,466,468,470,472,475,477,479,481,482,485,486,489,493,495,498,500,503,506,508,510,514,517,518,521,524,526,529,533,535,539,542,544,546,548,551,555,557,560,562,565,567,569,571,573,575,580,583,587,591,593,596,598,601,603,607,609,611,614,618,622,627,628,630,633,637,640,644,646,648,652,654,656,660,663,667,671,673,677,681,685,686,690,692,694,696,698,701,703,705],[239,40,40,240,241,40],"17734620","commenter\u002Fneutral\u002Fidea","pritambarhate",[243,40,40,244,147,40],"17734813","other\u002Fneutral\u002Fnone",[246,40,40,244,247,40],"17735022","skybrian",[225,40,40,249,11,41],"commenter\u002Fneutral\u002Fnone",[251,40,40,249,252,40],"17735601","bluejekyll",[228,40,40,249,11,41],[255,40,40,249,256,40],"17736440","DC-3",[258,40,40,249,259,40],"17736808","FigmentEngine",[231,40,40,244,11,41],[262,40,40,244,263,40],"17738356","buchanae",[265,40,40,249,266,40],"17738540","clamshell",[268,40,48,269,270,40],"17750812","project\u002Fpositive\u002Fidea","fit2rule",[272,40,40,244,273,40],"17734863","byproxy",[60,40,40,275,11,41],"maker\u002Fneutral\u002Fidea",[277,40,33,278,279,40],"17735701","project\u002Fneutral\u002Fperformance","tomp",[103,40,40,281,11,41],"project\u002Fneutral\u002Fdocs",[283,40,33,278,284,40],"17738542","sdegutis",[286,40,40,287,288,40],"17735511","other\u002Fneutral\u002Fdesign","baybal2",[290,40,40,249,291,40],"17737054","TheAccount",[293,40,40,249,294,40],"17737323","kccqzy",[296,40,40,244,297,40],"17736275","CraftThatBlock",[299,40,40,244,300,40],"17736289","jcelerier",[302,40,40,303,304,40],"17736388","other\u002Fneutral\u002Fpricing","cheapsteak",[306,40,40,303,307,40],"17736696","ahartmetz",[309,40,40,244,310,40],"17737425","pknopf",[312,40,40,313,314,40],"17739270","other\u002Fneutral\u002Fidea","pjmlp",[316,41,33,317,318,40],"17736581","project\u002Fneutral\u002Fexecution","fapjacks",[320,41,40,321,11,41],"17736747","maker\u002Fneutral\u002Fexecution",[323,41,40,244,324,40],"17736832","missblit",[326,18,48,327,328,40],"17735755","maker\u002Fpositive\u002Fnone","Sammi",[330,18,40,331,11,41],"17735834","maker\u002Fneutral\u002Fnone",[333,18,33,281,334,40],"17736601","the_duke",[336,18,40,281,11,41],"17737338",[146,33,33,338,147,40],"project\u002Fneutral\u002Fidea",[63,33,40,275,11,41],[341,33,33,342,343,40],"17739971","project\u002Fmixed\u002Fexecution","andrewprock",[345,49,33,281,346,40],"17733993","watermans",[348,49,40,349,11,41],"17734329","maker\u002Fneutral\u002Fdocs",[351,49,40,352,353,40],"17734495","commenter\u002Fneutral\u002Fdocs","oldmanhorton",[160,48,33,355,161,40],"project\u002Fmixed\u002Fidea",[192,357,33,278,193,40],6,[359,357,33,278,360,40],"17734634","lossolo",[362,357,33,278,363,40],"17734738","samstave",[365,357,40,366,11,41],"17734854","maker\u002Fneutral\u002Fperformance",[368,357,33,331,369,40],"17735158","sesteel",[371,357,40,331,11,41],"17735188",[373,357,41,374,375,40],"17735595","project\u002Fcritical\u002Fdesign","c-smile",[377,357,33,378,379,40],"17735823","project\u002Fneutral\u002Fdesign","derefr",[381,357,40,287,375,40],"17736216",[383,357,40,384,11,41],"17737312","maker\u002Fpositive\u002Fidea",[386,357,41,387,388,40],"17742062","project\u002Fcritical\u002Fprivacy","deeringc",[390,357,40,391,375,40],"17735178","other\u002Fneutral\u002Fperformance",[393,357,40,394,395,40],"17735468","other\u002Fcritical\u002Fperformance","sounds",[397,357,40,391,375,40],"17735621",[399,38,33,338,400,40],"17734678","krapp",[402,38,33,338,147,40],"17734794",[404,38,40,287,400,40],"17737139",[406,38,33,338,407,40],"17734890","panopticon",[409,38,48,269,410,40],"17735122","Pxl_Buzzard",[412,38,40,313,395,40],"17735515",[414,415,48,269,416,40],"17738296",8,"srikz",[418,419,33,338,420,40],"17734080",9,"dgreensp",[81,419,40,331,11,41],[423,419,33,281,424,40],"17735499","woodrowbarlow",[426,419,40,427,11,41],"17735597","maker\u002Fpositive\u002Fdocs",[429,419,40,249,430,40],"17738805","cormacrelf",[130,31,33,338,131,40],[433,31,40,244,434,40],"17735548","throwaway86x64",[436,31,40,244,310,40],"17736175",[438,31,40,244,307,40],"17736725",[440,31,40,244,441,40],"17737827","danenania",[134,443,48,269,135,40],11,[445,443,40,244,147,40],"17734828",[447,443,40,244,375,40],"17737147",[449,443,40,244,314,40],"17739309",[451,34,40,244,452,40],"17735987","arciini",[142,454,41,455,143,40],13,"project\u002Fcritical\u002Fpricing",[457,454,40,249,458,40],"17735924","mherrmann",[460,454,40,249,461,40],"17736133","ddevault",[463,454,40,249,458,40],"17736169",[465,454,40,249,143,40],"17736201",[467,454,40,249,458,40],"17736253",[469,454,40,249,143,40],"17736283",[471,454,40,249,458,40],"17736315",[473,454,40,249,474,40],"17738037","asddgsgsaxg",[476,454,40,249,310,40],"17736204",[478,454,40,249,458,40],"17736220",[480,454,40,249,310,40],"17736194",[200,222,33,338,201,40],[483,222,33,338,484,40],"17734064","supermdguy",[84,222,40,275,11,41],[487,222,48,488,484,40],"17734914","project\u002Fpositive\u002Fexecution",[490,222,41,491,492,40],"17734448","project\u002Fcritical\u002Fexecution","rapsey",[494,222,40,321,11,41],"17734533",[496,222,33,317,497,40],"17734797","elcritch",[499,222,40,321,11,41],"17735147",[501,222,33,317,502,40],"17737563","Klathmon",[504,222,40,249,505,40],"17734671","iffycan",[507,222,40,244,310,40],"17736244",[509,222,40,244,505,40],"17770202",[511,222,41,512,513,40],"17734669","project\u002Fcritical\u002Fperformance","kodablah",[515,222,33,338,516,40],"17734361","flohofwoe",[57,222,40,321,11,41],[519,222,40,249,520,40],"17734693","infogulch",[522,222,40,249,523,40],"17734861","FPGAhacker",[525,222,40,244,513,40],"17734653",[527,222,41,455,528,40],"17734710","dmoreno",[530,531,40,244,532,40],"17734435",15,"4684499",[534,531,40,331,11,41],"17734483",[536,531,33,537,538,40],"17734516","project\u002Fmixed\u002Fpricing","applecrazy",[540,531,40,249,541,40],"17734524","detaro",[543,531,40,249,538,40],"17734577",[545,531,40,249,541,40],"17734617",[547,531,40,249,147,40],"17734633",[549,531,40,249,550,40],"17734698","ppseafield",[552,531,41,553,554,40],"17734582","project\u002Fcritical\u002Fidea","dragonwriter",[556,531,40,244,532,40],"17734597",[558,531,40,244,559,40],"17734732","ognarb",[561,531,40,244,458,40],"17735950",[563,531,40,249,564,40],"17736086","ziftface",[566,531,40,249,458,40],"17736147",[568,531,40,249,334,40],"17736671",[70,570,33,278,71,40],16,[572,570,40,366,11,41],"17737190",[176,574,33,281,177,40],17,[576,577,33,578,579,40],"17734687",18,"project\u002Fneutral\u002Fnone","thepumpkin1979",[581,577,33,378,582,40],"17734789","cookiecat12",[584,585,33,338,586,40],"17735939",19,"cjhanks",[588,589,33,338,590,40],"17734160",20,"geoah",[184,592,33,338,185,40],21,[594,595,33,338,520,40],"17734705",22,[597,595,40,249,147,40],"17734886",[599,595,40,240,600,40],"17735871","floatboth",[602,595,40,352,520,40],"17736154",[604,595,40,605,606,40],"17736577","commenter\u002Fneutral\u002Fperformance","ricardobeat",[608,595,40,605,520,40],"17737006",[610,595,40,249,492,40],"17737797",[612,595,40,249,613,40],"17737539","uep",[615,616,40,244,617,40],"17738952",23,"stoyannk",[619,620,33,281,621,40],"17734610",24,"tambourine_man",[623,624,41,625,626,40],"17735278",25,"project\u002Fcritical\u002Fnone","jcoffland",[97,624,40,331,11,41],[629,624,41,553,626,40],"17747286",[631,624,33,578,632,40],"17735344","EmilStenstrom",[634,635,33,338,636,40],"17734978",26,"speps",[638,16,33,578,639,40],"17736339","osrec",[641,642,33,338,643,40],"17736022",28,"bmh",[645,642,40,275,11,41],"17736061",[172,647,33,281,173,40],29,[649,647,41,650,651,40],"17734869","project\u002Fcritical\u002Fdocs","chairmanwow",[653,647,40,352,147,40],"17734879",[655,647,40,349,11,41],"17736171",[657,658,41,625,659,40],"17738479",30,"foadsf",[661,658,40,249,662,40],"17738531","vernie",[664,665,33,338,666,40],"17734656",31,"platform",[668,669,33,281,670,40],"17737456",32,"aetherspawn",[672,669,33,578,314,40],"17739324",[674,675,33,281,676,40],"17735170",33,"xingped",[678,679,33,338,680,40],"17739004",34,"roadbeats",[682,683,33,578,684,40],"17734377",35,"jchw",[119,683,40,331,11,41],[687,683,48,688,689,40],"17735112","project\u002Fpositive\u002Fnone","_arvin",[691,683,40,244,684,40],"17735041",[74,693,41,553,75,40],36,[695,693,40,275,11,41],"17735703",[697,693,48,384,75,40],"17737134",[699,693,33,378,700,40],"17737152","rjvs",[109,693,40,702,11,41],"maker\u002Fneutral\u002Fdesign",[704,693,48,269,270,40],"17756283",[706,707,48,269,270,40],"17750789",37,[],[710,714,719,724,728,733],{"id":711,"name":712,"points":713,"category":20},"17725966","Retool",592,{"id":715,"name":716,"points":717,"category":718},"17744073","Didyougogo",269,"data",{"id":720,"name":721,"points":722,"category":723},"17752010","Mersey Burns",267,"infrastructure",{"id":725,"name":726,"points":727,"category":20},"17731883","graphqurl",246,{"id":729,"name":730,"points":731,"category":732},"17720786","NES Party",237,"games",{"id":734,"name":735,"points":736,"category":20},"17755199","Rb",232,false,"v2",{"id":740,"name":5,"line":6,"ai":737,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":741,"top":18,"kw":742,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":743,"url":9,"mix":744,"praise":127,"objection":139,"sub":21},17733515,-0.03,[24,25,26,27],"0053003433313453501033310101333031313335",[31,32,33,34],1794036568534]