[{"data":1,"prerenderedAt":374},["ShallowReactive",2],{"project-19780790":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":34,"aspects":35,"strip":43,"post_text":46,"what":47,"said":83,"maker_in_thread":174,"shape":186,"grid":191,"attempts":335,"same_week":336,"maker_shows":37,"maker_hidden":366,"reader_version":367,"card":368},"19780790","Stretch","A high-performance cross-platform layout engine in Rust","title","Show HN: Stretch – A high-performance cross-platform layout engine in Rust","https:\u002F\u002Fvislyhq.github.io\u002Fstretch\u002F","vislyhq.github.io","emilsjolander",1556560666,2019,213,58,180,2195,9,"notable","dev_tools","layout engine","library",[24,21,25,26,27],"flexbox","rust","yoga alternative","cross platform ui","mixed",0.171,{"positive":18,"neutral":31,"mixed":32,"critical":33},10,0,4,23,{"docs":36,"execution":38,"idea":40,"design":41,"performance":42},{"positive":37,"critical":37},1,{"positive":39,"critical":32},2,{"positive":39,"critical":37},{"positive":37,"critical":32},{"positive":32,"critical":32},[37,32,44,32,32,32,32,32,32,32,32,32,32,32,45,45,32,45,32,45,44,32,45,44,45,32,37,32,44,44,32,45,44,45,32,45,44,37,37,44],3,5,null,{"problem":48,"audience":58,"pricing":46,"motivation":70,"time_to_build":46,"stack":74,"openness":81,"stage":82,"team_size":82},{"value":49,"source":50,"evidence":51},"Layout engine that matches web browser flexbox behavior more closely than Yoga.","maker",[52,55],{"id":53,"by":11,"text":54},"19782120","Hey there! Author of both Yoga and Stretch. I built stretch after leaving facebook because of some fundamental flaws in Yoga which made it not 100% compatible with web browsers.…",{"id":56,"by":11,"text":57},"19781441","I'm the author of both Yoga and Stretch :) After leaving Facebook I created Stretch to fix some core issues which would be hard to address in Yoga, mainly some web compatibility…",{"value":59,"source":60,"evidence":61},"Developers building cross-platform UIs, especially in Rust.","inferred",[62,66],{"id":63,"by":64,"text":65},"19781355","iBelieve","This looks great! I've been using Yoga in my Rust UI framework via the yoga-rs bindings, and this looks like a nice pure-rust alternative to try using instead.",{"id":67,"by":68,"text":69},"19781319","Klonoar","I've been using Stretch lately for a project I'm planning to open source in a week or two (a cross platform GUI engine...). Pretty happy so far.",{"value":71,"source":50,"evidence":72},"Fix web compatibility issues in Yoga that were hard to address there, and use a more modern, easier-to-maintain language.",[73],{"id":53,"by":11,"text":54},[75],{"value":76,"source":50,"evidence":77},"Rust",[78,80],{"id":79},"post",{"id":63,"by":64,"text":65},"open_source","unknown",{"praise":84,"objections":105,"requests":127,"questions":137,"alternatives":153},[85,97],{"value":86,"source":87,"evidence":88},"Pragmatic approach of testing against Chrome with web platform tests.","commenter",[89,93],{"id":90,"by":91,"text":92},"19782127","pcwalton","Flexbox is pretty mature though. I'm as much of a critic of the Chrome-only Web as anyone, but in this case it's reasonable to test against Chrome. We have the Web platform tests…",{"id":94,"by":95,"text":96},"19782370","dmitriid","I like this approach :) It’s pragmatic.",{"value":98,"source":87,"evidence":99},"Pure Rust alternative to Yoga bindings.",[100,101],{"id":63,"by":64,"text":65},{"id":102,"by":103,"text":104},"19787963","bschwindHN","As the author of the bindings, I'm happy for Stretch to exist :) All I wanted was a flexbox engine in Rust, and it's great to now have a pure Rust solution!",[106,116],{"value":107,"source":87,"evidence":108},"Testing only against Chrome risks replicating Chrome bugs.",[109,112],{"id":110,"by":95,"text":111},"19781865","> Stretch is tested against Chrome to ensure 100% web compatibility Erm, no. That’s testing Chrome compatibility (though it’s probably the only one easy enough to test). Chrome…",{"id":113,"by":114,"text":115},"19784159","roca","It would be a very good idea to run the tests against Firefox as well as Chrome to avoid replicating Chrome bugs that the Chrome team might later fix.",{"value":117,"source":87,"evidence":118},"Grid layout is missing.",[119,123],{"id":120,"by":121,"text":122},"19781978","jarjoura","Interesting! It seems this is a rewrite of Yoga, by the same author, seen by another comment in this thread. So why start again using flex box as a layout engine? For example,…",{"id":124,"by":125,"text":126},"19782372","nicoburns","Super-excited to hear that Grid layout will be coming soonish. Yoga has been fantastic in making Flexbox available \"everywhere\", but Grid is wonderful for UI layout in a way that…",[128,133],{"value":129,"source":87,"evidence":130},"Add CSS Grid layout support.",[131,132],{"id":120,"by":121,"text":122},{"id":124,"by":125,"text":126},{"value":134,"source":87,"evidence":135},"Run tests against Firefox as well as Chrome.",[136],{"id":113,"by":114,"text":115},[138,146],{"value":139,"source":87,"evidence":140},"How does it compare to Yoga?",[141,145],{"id":142,"by":143,"text":144},"19781990","openbasic","How does this compare to Yoga? https:\u002F\u002Fyogalayout.com\u002F",{"id":120,"by":121,"text":122},{"value":147,"source":87,"evidence":148},"How to use it as a web developer moving to mobile?",[149],{"id":150,"by":151,"text":152},"19801094","whytaka","As a web guy wanting to break out into mobile development, I’m very intrigued by what it says but I have no idea how to make use of this. Can someone give me a light overview?",[154,159,167],{"value":155,"source":87,"evidence":156},"Yoga",[157,158],{"id":142,"by":143,"text":144},{"id":63,"by":64,"text":65},{"value":160,"source":87,"evidence":161},"Apple AutoLayout",[162,163],{"id":120,"by":121,"text":122},{"id":164,"by":165,"text":166},"19782141","jahewson","What problems have you experienced with Apple’s auto layout?",{"value":168,"source":87,"evidence":169},"ConstraintLayout",[170],{"id":171,"by":172,"text":173},"19784346","on_and_off","Have you tried ConstraintLayout ? It is based on Cassowary constraint resolution algorithm just as Apple's AutoLayout. Is it missing something compared to Apple's solution ?",{"comments":175,"answered":33,"key":176},11,[177,180,183],{"id":178,"text":179},"19782102","Actually it uses webdriver to generate the tests so while we only commit the chrome tests (for simplicity) it is easy enough to run the other browsers locally as long as they…",{"id":181,"text":182},"19781459","Author here. Super excited to see what you are building! We are more than happy to feature it on the Stretch landing page :) Shoot me an email and let's chat!",{"id":184,"text":185},"19782298","Super exciting. Interested to see how we can help.",{"commenters":187,"max_depth":188,"maker_replies":175,"first_comment_mins":189,"lifespan_hours":190},38,7,48,50,[192,194,198,202,205,209,212,214,216,219,222,225,228,231,233,236,239,242,245,247,249,251,252,254,257,259,261,263,267,268,270,272,274,276,279,281,284,285,289,292,294,297,298,299,302,305,308,312,314,315,318,320,321,322,327,331,333,334],[110,32,37,193,95,32],"project\u002Fcritical\u002Fdocs",[195,32,32,196,197,32],"19781972","other\u002Fneutral\u002Fnone","Twirrim",[199,32,44,200,201,32],"19782067","project\u002Fneutral\u002Fnone","skybrian",[203,32,32,196,204,32],"19782078","walterbell",[206,32,32,207,208,32],"19782198","commenter\u002Fneutral\u002Fnone","TylerE",[210,32,32,196,211,32],"19782492","spinningslate",[213,32,32,207,208,32],"19782555",[215,32,32,207,211,32],"19782643",[217,32,32,196,218,32],"19782714","jfk13",[220,32,32,196,221,32],"19782868","WorldMaker",[223,32,32,196,224,32],"19783129","MayeulC",[226,32,32,207,227,32],"19782838","mixedCase",[229,32,32,207,230,32],"19783081","Hackbraten",[232,32,32,196,201,32],"19784194",[234,32,32,207,235,32],"19783673","wilsonthewhale",[237,32,32,196,238,32],"19783446","bartimus",[240,32,32,196,241,32],"19784432","bzbarsky",[243,32,32,207,244,32],"19785699","rmdashrfstar",[246,32,32,196,241,32],"19787998",[178,32,32,248,11,37],"maker\u002Fneutral\u002Fnone",[90,32,45,250,91,32],"project\u002Fpositive\u002Fexecution",[94,32,45,250,95,32],[253,32,32,196,218,32],"19782744",[255,32,32,196,256,32],"19783953","c3534l",[258,32,32,196,125,32],"19786175",[67,37,45,260,68,32],"project\u002Fpositive\u002Fnone",[181,37,32,262,11,37],"maker\u002Fpositive\u002Fnone",[264,37,45,265,266,32],"19782239","project\u002Fpositive\u002Fidea","mamcx",[184,37,32,262,11,37],[120,39,44,269,121,32],"project\u002Fneutral\u002Fidea",[271,39,32,269,11,37],"19782139",[124,39,45,273,125,32],"project\u002Fpositive\u002Fdesign",[275,39,32,248,11,37],"19782428",[277,39,44,278,125,32],"19782831","project\u002Fneutral\u002Fexecution",[280,39,32,262,11,37],"19783066",[282,39,45,262,283,32],"19784890","kjsthree",[164,39,32,207,165,32],[286,39,37,287,288,32],"19782933","project\u002Fcritical\u002Fidea","layoutIfNeeded",[290,39,44,269,291,32],"19783123","atom_arranger",[293,39,32,269,11,37],"19783220",[295,39,44,269,296,32],"19783951","travisgriggs",[171,39,32,196,172,32],[113,44,44,278,114,32],[300,33,32,196,301,32],"19786237","emmanueloga_",[303,33,32,304,11,37],"19786392","maker\u002Fneutral\u002Fdocs",[306,33,45,307,301,32],"19794836","maker\u002Fpositive\u002Fdocs",[309,45,44,310,311,32],"19790605","project\u002Fneutral\u002Fdesign","asdkhadsj",[63,313,45,260,64,32],6,[56,313,32,248,11,37],[316,313,32,207,317,32],"19781498","mkl",[319,313,32,248,11,37],"19781522",[102,313,45,265,103,32],[150,188,44,200,151,32],[323,324,44,325,326,32],"19785041",8,"project\u002Fneutral\u002Fperformance","_bxg1",[328,324,37,329,330,32],"19785386","project\u002Fcritical\u002Fnone","codedokode",[332,324,37,329,103,32],"19787980",[142,18,44,200,143,32],[53,18,32,248,11,37],[],[337,341,346,351,356,361],{"id":338,"name":339,"points":340,"category":20},"19774019","Lorem Picsum",880,{"id":342,"name":343,"points":344,"category":345},"19772097","1MB",744,"web_saas",{"id":347,"name":348,"points":349,"category":350},"19791073","CC Search",375,"creative",{"id":352,"name":353,"points":354,"category":355},"19756505","Sauron",305,"languages",{"id":357,"name":358,"points":359,"category":360},"19801546","IPFS-Deploy",150,"infrastructure",{"id":362,"name":363,"points":364,"category":365},"19752317","Quinesnake",131,"games",false,"v2",{"id":369,"name":5,"line":6,"ai":366,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":370,"top":18,"kw":371,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":372,"url":9,"mix":373,"praise":86,"objection":107,"sub":21},19780790,0.17,[24,21,25,26,27],"1030000000000055050530535010330535053113",[18,31,32,33],1794036577126]