[{"data":1,"prerenderedAt":318},["ShallowReactive",2],{"project-7976749":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":44,"post_text":46,"what":47,"said":82,"maker_in_thread":154,"shape":164,"grid":169,"attempts":280,"same_week":281,"maker_shows":34,"maker_hidden":310,"reader_version":311,"card":312},"7976749","Iron","A fast middleware-oriented Rust web server framework","title","Show HN: Iron, a fast middleware-oriented Rust web server framework","https:\u002F\u002Fgithub.com\u002Firon\u002Firon","github.com","jonreem",1404306881,2014,81,45,363,2272,16,"notable","languages","web framework","library",[24,25,26,27,28],"rust web framework","middleware","http server","rust","web server","curious",-0.063,{"positive":32,"neutral":33,"mixed":34,"critical":35},3,20,1,4,28,{"idea":38,"performance":39,"docs":42,"execution":43},{"positive":34,"critical":34},{"positive":40,"critical":41},0,2,{"positive":41,"critical":40},{"positive":40,"critical":34},[45,40,40,32,34,32,40,32,32,32,32,32,32,45,34,32,40,32,32,40,40,32,32,32,40,40,40,32,32,40,45,32,34,32,40,32,34,40,40,40],5,null,{"problem":48,"audience":54,"pricing":46,"motivation":46,"time_to_build":46,"stack":65,"openness":79,"stage":80,"team_size":81},{"value":49,"source":50,"evidence":51},"Building web servers in Rust with middleware composition","inferred",[52],{"id":53},"post",{"value":55,"source":50,"evidence":56},"Rust programmers building web services",[57,61],{"id":58,"by":59,"text":60},"7977086","bhauer","I've been waiting to see some Rust frameworks emerge. Thanks for putting this together! Would you be willing to contribute a test implementation to our project [1]? [1]…",{"id":62,"by":63,"text":64},"7977053","wc-","This looks very nice. I've been following rust and go for a while now and I finally have a small service to write that would be a good fit for either language so I'm going to try…",[66,71],{"value":67,"source":68,"evidence":69},"Rust","maker",[70],{"id":53},{"value":72,"source":73,"evidence":74},"rust-http","commenter",[75],{"id":76,"by":77,"text":78},"7977275","zzmp","We built Iron on top of `rust-http`, but we're excited for `teepee` too, and there are a few others popping up as well.","unknown","beta","team",{"praise":83,"objections":88,"requests":109,"questions":128,"alternatives":139},[84],{"value":85,"source":73,"evidence":86},"Welcomed as an early Rust web framework",[87],{"id":58,"by":59,"text":60},[89,100],{"value":90,"source":73,"evidence":91},"Hello world throughput (2500-3000 req\u002Fs) is far below Go and other frameworks",[92,96],{"id":93,"by":94,"text":95},"7977027","dawkins","\"Iron averages 2500-3000+ requests per second for hello world\" For a hello world in my laptop I can get typically 30k requests with Go, and with mono\u002FhttpListener ~10k. I…",{"id":97,"by":98,"text":99},"7977412","leccine","Same here, without even looking into what is slow, Clojure with Compojure does 7500 req\u002Fs. If Rust would like to be the next close to bare metal language we need some serious…",{"value":101,"source":73,"evidence":102},"Rust is not yet production-ready and breaking changes are frequent",[103,106],{"id":104,"by":77,"text":105},"7977135","This looks like a great resource! Unfortunately, I'm not sure if anything in Rust should be considered `production-ready` yet, and I haven't worked with any ORM wrappers in Rust…",{"id":107,"by":63,"text":108},"7977555","I know rust is pre-1.0 but wow that's a lot more breaking changes than I expected...",[110,121],{"value":111,"source":73,"evidence":112},"Add benchmark test scripts and profiling",[113,117],{"id":114,"by":115,"text":116},"7977065","eudox","Since the tests are relative they should include a script that tests the different frameworks\u002Flanguages. It shouldn't be too complicated.",{"id":118,"by":119,"text":120},"7977329","sanderjd","The comparison with Go is really interesting because I don't think its http server does anything particularly fancy (like calling across FFI to non-Go code) and I don't see any…",{"value":122,"source":73,"evidence":123},"Fix broken documentation links",[124],{"id":125,"by":126,"text":127},"7977371","mercurial","By the way, something is up with the server serving the static doc. The link to the docs is wrong, eg https:\u002F\u002Fgithub.com\u002Firon\u002Frouter should link to…",[129,135],{"value":130,"source":73,"evidence":131},"How to share mutable state such as a connection pool across requests",[132],{"id":133,"by":126,"text":134},"7977432","Simple question. According to [1], middlewares are cloned for each request. Is there a good built-in way of accessing shared mutable data, such as a connection pool? 1:…",{"value":136,"source":73,"evidence":137},"How often do breaking changes happen and how to stay up to date",[138],{"id":62,"by":63,"text":64},[140,144,150],{"value":141,"source":73,"evidence":142},"Go net\u002Fhttp",[143],{"id":93,"by":94,"text":95},{"value":145,"source":73,"evidence":146},"Node.js frameworks",[147],{"id":148,"by":11,"text":149},"7977089","The benchmarks are a bit lower than we wanted. I think this is mostly due to an immature ecosystem for doing basic http - working off of c bindings to a proven, fast framework…",{"value":151,"source":73,"evidence":152},"Compojure (Clojure)",[153],{"id":97,"by":98,"text":99},{"comments":155,"answered":35,"key":156},6,[157,158,161],{"id":148,"text":149},{"id":159,"text":160},"7977351","To be honest, it's mostly because that's what we had experience with.",{"id":162,"text":163},"7978498","It's worth mentioning that I ran this under -c 100 or 200, not 1-8, which may change things significantly.",{"commenters":165,"max_depth":166,"maker_replies":155,"first_comment_mins":167,"lifespan_hours":168},25,7,39,47,[170,172,174,177,181,183,185,186,188,189,190,193,196,198,201,204,205,208,212,215,218,221,222,224,227,229,232,234,237,239,241,242,245,248,251,253,257,261,262,265,267,269,272,275,277],[58,40,45,171,59,40],"project\u002Fpositive\u002Fidea",[104,40,40,173,77,40],"other\u002Fneutral\u002Fnone",[175,40,40,173,176,40],"7977218","necaris",[178,40,32,179,180,40],"7977840","maker\u002Fneutral\u002Fnone","theptrk",[93,34,34,182,94,40],"project\u002Fcritical\u002Fperformance",[114,34,32,184,115,40],"project\u002Fneutral\u002Fperformance",[148,34,40,184,11,34],[187,34,32,179,126,40],"7977280",[159,34,40,179,11,34],[118,34,32,184,119,40],[191,34,32,184,192,40],"7978051","ben0x539",[194,34,32,184,195,40],"7978396","oscargrouch",[125,34,32,197,126,40],"project\u002Fmixed\u002Fdocs",[199,34,32,200,77,40],"7977406","maker\u002Fneutral\u002Fdocs",[202,34,45,203,77,40],"7979242","maker\u002Fpositive\u002Fdocs",[97,34,34,182,98,40],[206,34,32,184,207,40],"7977419","Argorak",[209,34,40,210,211,40],"7980384","other\u002Fneutral\u002Fperformance","chrismorgan",[213,34,40,214,207,40],"7988336","commenter\u002Fneutral\u002Fnone",[216,34,32,184,217,40],"7977587","pcwalton",[219,34,32,184,220,40],"7978299","cmrx64",[162,34,40,184,11,34],[223,34,40,184,11,34],"7980681",[225,34,32,184,226,40],"7982960","glandium",[228,41,32,179,77,40],"7976953",[230,41,32,231,176,40],"7977261","project\u002Fneutral\u002Fexecution",[76,41,32,233,77,40],"project\u002Fneutral\u002Fnone",[235,41,40,173,236,40],"7978132","bjz_",[238,41,40,173,176,40],"7982634",[240,41,40,173,211,40],"7986543",[133,41,32,231,126,40],[243,41,32,231,244,40],"7978028","eddyb",[246,41,40,247,11,34],"7978194","project\u002Fneutral\u002Fdocs",[249,41,45,250,126,40],"7978395","project\u002Fpositive\u002Fdocs",[252,41,32,247,77,40],"7978201",[254,41,32,255,256,40],"7977457","project\u002Fneutral\u002Fidea","DomreiRoam",[258,41,34,259,260,40],"7977909","project\u002Fcritical\u002Fidea","geertj",[62,32,32,231,63,40],[263,32,40,264,11,34],"7977102","maker\u002Fneutral\u002Fexecution",[266,32,32,264,77,40],"7977104",[107,32,34,268,63,40],"project\u002Fcritical\u002Fexecution",[270,32,40,173,271,40],"7977852","steveklabnik",[273,32,40,173,274,40],"7977932","higherpurpose",[276,32,40,173,271,40],"7978010",[278,32,40,173,279,40],"7979010","andrewflnr",[],[282,287,292,296,301,306],{"id":283,"name":284,"points":285,"category":286},"7978075","interviewing.io",604,"learning_science",{"id":288,"name":289,"points":290,"category":291},"7951020","Vim Awesome",222,"dev_tools",{"id":293,"name":294,"points":295,"category":286},"7965784","Instinct",218,{"id":297,"name":298,"points":299,"category":300},"7954327","Grasswire",115,"productivity",{"id":302,"name":303,"points":304,"category":305},"7973784","Bayes Impact",80,"other",{"id":307,"name":308,"points":309,"category":291},"7958235","Bootstrap Carnival",78,false,"v2",{"id":313,"name":5,"line":6,"ai":310,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":314,"top":18,"kw":315,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":316,"url":9,"mix":317,"praise":85,"objection":90,"sub":21},7976749,-0.06,[24,25,26,27,28],"5003130333333513033003330003305313031000",[32,33,34,35],1793990907202]