[{"data":1,"prerenderedAt":487},["ShallowReactive",2],{"project-26042463":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":47,"post_text":49,"what":50,"said":81,"maker_in_thread":198,"shape":207,"grid":211,"attempts":450,"same_week":451,"maker_shows":34,"maker_hidden":479,"reader_version":480,"card":481},"26042463","Ht","HTTPie Clone in Rust","title","Show HN: Ht – HTTPie Clone in Rust","https:\u002F\u002Fgithub.com\u002Fducaale\u002Fht","github.com","ducaale",1612567195,2021,251,96,147,2533,6,"legend","dev_tools","http client cli","cli",[24,25,26,27,28],"http client","httpie","rust cli","curl alternative","api testing","mixed",0.284,{"positive":32,"neutral":33,"mixed":34,"critical":35},16,8,1,7,32,{"execution":38,"design":41,"idea":43,"privacy":44,"performance":45},{"positive":39,"critical":40},5,0,{"positive":42,"critical":34},2,{"positive":34,"critical":42},{"positive":34,"critical":40},{"positive":46,"critical":46},4,[39,40,40,40,40,40,48,34,40,39,39,40,40,40,40,40,40,39,48,39,39,48,48,48,34,48,40,48,40,40,40,40,39,48,39,39,39,40,34,48],3,null,{"problem":51,"audience":49,"pricing":49,"motivation":62,"time_to_build":49,"stack":66,"openness":79,"stage":80,"team_size":80},{"value":52,"source":53,"evidence":54},"HTTPie is slow to start because it runs on Python; ht is a faster Rust port","maker",[55,58],{"id":56,"by":11,"text":57},"26042538","Yup, performance was one of the reasons I decided to port it to Rust. The other reason being that Rust gives you a single binary that is easier to deploy compared to python.",{"id":59,"by":60,"text":61},"26043433","thallada","Why use something slower when an equivalent faster tool is available? There's definitely a noticeable delay on my machine with starting up the python interpreter. Enough that it…",{"value":63,"source":53,"evidence":64},"Performance and single-binary deployment compared to Python",[65],{"id":56,"by":11,"text":57},[67,71],{"value":68,"source":53,"evidence":69},"Rust",[70],{"id":56,"by":11,"text":57},{"value":72,"source":73,"evidence":74},"rustls","commenter",[75],{"id":76,"by":77,"text":78},"26043484","hlieberman","I think the biggest value of this vs httpie is that it doesn't use the system TLS libraries (openssl\u002Fgnutls\u002Fwhatever) but instead uses rustls. Less attack surface, though…","open_source","unknown",{"praise":82,"objections":110,"requests":136,"questions":155,"alternatives":170},[83,95,99],{"value":84,"source":73,"evidence":85},"Much faster startup than httpie",[86,87,91],{"id":59,"by":60,"text":61},{"id":88,"by":89,"text":90},"26043659","iruoy","It definitely is. ``` % hyperfine 'http get EXAMPLE.COM' 'ht get EXAMPLE.COM' -w 10 -r 100 Benchmark #1: http get EXAMPLE.COM Time (mean ± σ): 200.8 ms ± 7.4 ms [User: 178.9 ms,…",{"id":92,"by":93,"text":94},"26043806","nitsky","Thank you so much for doing this! I can feel the slow startup time of httpie every time I use it. ht has made it disappear! For users of Arch Linux, I submitted an AUR package:…",{"value":96,"source":73,"evidence":97},"Rustls avoids system TLS libraries",[98],{"id":76,"by":77,"text":78},{"value":100,"source":73,"evidence":101},"Easy to install as a single binary",[102,106],{"id":103,"by":104,"text":105},"26043494","pdimitar","Nice work! As shared down-thread, I really loved and wanted to use `httpie` but the non-trivial amount of startup has put me off. Very happy that you made a Rust alternative…",{"id":107,"by":108,"text":109},"26044963","jicea","Very nice work, seems really fast! Since it’s written in Rust, do you plan to release a Windows version ? HTTPie requires Python so Ht could have another advantage being easier…",[111,118,125],{"value":112,"source":73,"evidence":113},"Name clashes with TeXlive's ht binary",[114],{"id":115,"by":116,"text":117},"26045649","dbrgn","Very nice! httpie is my favorite HTTP client, and it's always nice if command line tools run a bit faster. Unfortunately the name clashes with a binary that's part of TeXlive: $…",{"value":119,"source":73,"evidence":120},"Name misuses HT (HyperText) for a transfer protocol tool",[121],{"id":122,"by":123,"text":124},"26051814","remram","Hate to be that guy, but it's a bit weird to pick the HT part of HTTP, which stands for HyperText, when the tool only deals with the Transfer Protocol.",{"value":126,"source":73,"evidence":127},"Performance gain is mostly Python startup, not request speed",[128,132],{"id":129,"by":130,"text":131},"26043934","bpicolo","cpython startup time might account for a good fraction of that",{"id":133,"by":134,"text":135},"26044022","Volundr","FWIW as a developer whose worked in both interpreted and compiled languages (but not Python) it's obvious to me that the compiled version will be faster, but it's not obvious…",[137,144,148],{"value":138,"source":73,"evidence":139},"Add HEAD method support",[140],{"id":141,"by":142,"text":143},"26043645","tyingq","Nice work, saw this referenced on another Show HN recently: https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=25939042 Adding HEAD as one of the methods would be welcome so we could get…",{"value":145,"source":73,"evidence":146},"Document the -p switch in the README",[147],{"id":141,"by":142,"text":143},{"value":149,"source":73,"evidence":150},"Dark-terminal-friendly style for white backgrounds",[151],{"id":152,"by":153,"text":154},"26046632","donaldihunter","Really nice. It needs a style that is suitable for a terminal with white background though.",[156,163],{"value":157,"source":73,"evidence":158},"Why performance matters for a CLI test tool",[159],{"id":160,"by":161,"text":162},"26043327","inshadows","Why do you need more performance from a CLI test tool? I'm honestly curious. It's basically curl (fast) plus simpler and easier interface and pretty printers. For performance in…",{"value":164,"source":73,"evidence":165},"Is the compiled version faster",[166],{"id":167,"by":168,"text":169},"26042509","johnhenry","Compiled vs interpreted -- is it faster?",[171,178,187,194],{"value":25,"source":73,"evidence":172},[173,174],{"id":141,"by":142,"text":143},{"id":175,"by":176,"text":177},"26050378","BiteCode_dev","Some httpie tricks: Use --offline to see the request but not perform it: ``` http --offline get google.com GET \u002F HTTP\u002F1.1 Accept: application\u002Fjson, *\u002F*;q=0.5 Accept-Encoding:…",{"value":179,"source":73,"evidence":180},"curl",[181,184],{"id":182,"by":104,"text":183},"26043488","It adds up. I once tried to scrape an internal company website \u002F API because we had no PDF exports and wanted to download + export to PDF, with `httpie`. It's an amazing tool but…",{"id":185,"by":161,"text":186},"26046044","Why don't you use cURL then? cURL is written in C, which sure is teh performance you're looking for.",{"value":188,"source":73,"evidence":189},"curlie",[190],{"id":191,"by":192,"text":193},"26043778","flitzofolov","This is great! I've also come to really like curlie (https:\u002F\u002Fcurlie.io\u002F). It is written in in Go and provides an `httpie` like interface with `curl` like performance.",{"value":195,"source":73,"evidence":196},"hurl",[197],{"id":107,"by":108,"text":109},{"comments":48,"answered":48,"key":199},[200,203,206],{"id":201,"text":202},"26044758","Thanks for the feedback and the link :).",{"id":204,"text":205},"26045589","Thanks, I will try post it one more time once the tool is stabilized. >I see that you have a “HTTPie feature parity checklist” (issue #4) on the issues list. Is that the sole…",{"id":56,"text":57},{"commenters":208,"max_depth":209,"maker_replies":48,"first_comment_mins":35,"lifespan_hours":210},61,12,238,[212,216,220,223,226,228,231,234,237,239,241,244,247,249,252,255,256,260,264,267,270,273,275,278,280,284,287,290,292,295,298,300,302,304,306,309,311,314,317,320,322,324,328,331,333,337,338,340,343,346,349,350,351,353,356,358,362,363,365,367,369,370,371,374,377,379,382,385,387,390,392,394,396,398,400,402,404,405,408,411,413,416,418,420,422,425,426,429,431,434,437,439,442,443,445,447],[213,40,39,214,215,40],"26044738","project\u002Fpositive\u002Fnone","indemnity",[217,40,40,218,219,40],"26045187","commenter\u002Fneutral\u002Fnone","chme",[221,40,40,218,222,40],"26045392","codetrotter",[224,40,40,218,225,40],"26046353","Xylakant",[227,40,40,218,215,40],"26045488",[229,40,40,218,230,40],"26045212","danmur",[232,40,40,218,233,40],"26045286","StavrosK",[235,40,40,218,236,40],"26045297","globular-toast",[238,40,40,218,233,40],"26045315",[240,40,40,218,236,40],"26045467",[242,40,40,243,176,40],"26046563","other\u002Fneutral\u002Fnone",[245,40,40,218,246,40],"26048527","CameronNemo",[248,40,40,218,176,40],"26048907",[250,40,40,218,251,40],"26047171","acdha",[253,40,48,254,142,40],"26047881","project\u002Fneutral\u002Fexecution",[191,34,40,243,192,40],[257,34,34,258,259,40],"26043821","project\u002Fcritical\u002Fdesign","ComputerGuru",[261,34,34,262,263,40],"26044733","project\u002Fcritical\u002Fidea","johanzm",[265,34,40,243,266,40],"26044990","petre",[268,34,40,218,269,40],"26045282","Phlogistique",[271,34,40,243,272,40],"26063375","pastage",[274,34,40,243,266,40],"26044983",[276,34,40,243,277,40],"26046066","batisteo",[76,42,39,279,77,40],"project\u002Fpositive\u002Fprivacy",[281,42,39,282,283,40],"26043503","project\u002Fpositive\u002Fexecution","arusahni",[285,42,40,218,286,40],"26044627","ducktective",[288,42,40,218,289,40],"26044710","frenchman99",[291,42,40,218,286,40],"26044950",[293,42,40,243,294,40],"26045458","eptcyka",[296,42,40,218,297,40],"26047620","burntsushi",[299,42,40,218,286,40],"26049504",[301,42,40,218,297,40],"26065654",[303,42,40,218,286,40],"26066566",[305,42,40,218,297,40],"26071189",[307,42,40,218,308,40],"26045445","d0mine",[310,42,40,218,286,40],"26045875",[312,42,40,218,313,40],"26045965","Macha",[315,42,40,218,316,40],"26046573","steveklabnik",[318,42,40,243,319,40],"26045658","thiht",[321,42,40,243,283,40],"26046581",[92,48,39,323,93,40],"project\u002Fpositive\u002Fperformance",[325,48,39,326,327,40],"26048315","maker\u002Fpositive\u002Fnone","yagizdegirmenci",[329,48,40,243,330,40],"26111069","O_H_E",[332,48,48,254,330,40],"26111075",[334,48,48,335,336,40],"26147247","project\u002Fneutral\u002Fnone","psYchotic",[141,46,39,282,142,40],[201,46,40,339,11,34],"maker\u002Fneutral\u002Fnone",[341,46,39,282,342,40],"26045830","PascalW",[344,39,39,282,345,40],"26043799","saghm",[347,18,39,214,348,40],"26044964","clumsysmurf",[115,35,48,254,116,40],[175,33,40,243,176,40],[107,352,39,282,108,40],9,[354,352,40,243,355,40],"26045050","maccam94",[122,357,34,262,123,40],10,[359,360,48,335,361,40],"26044380",11,"newscracker",[204,360,40,339,11,34],[167,209,48,364,168,40],"project\u002Fneutral\u002Fperformance",[56,209,40,366,11,34],"maker\u002Fneutral\u002Fperformance",[160,209,34,368,161,40],"project\u002Fcritical\u002Fperformance",[59,209,39,323,60,40],[182,209,34,368,104,40],[372,209,40,218,373,40],"26043734","Scarbutt",[375,209,40,218,376,40],"26044308","michaelmrose",[378,209,40,218,104,40],"26045690",[380,209,40,218,381,40],"26045936","killingtime74",[383,209,48,364,384,40],"26043751","dharmab",[386,209,40,218,104,40],"26044393",[388,209,40,218,389,40],"26044547","j0057",[391,209,40,218,104,40],"26045683",[393,209,40,218,384,40],"26048609",[395,209,40,218,104,40],"26048645",[397,209,40,218,384,40],"26048716",[399,209,40,218,104,40],"26049008",[401,209,40,243,389,40],"26049070",[403,209,40,243,104,40],"26049155",[185,209,40,218,161,40],[406,209,39,407,104,40],"26046079","project\u002Fpositive\u002Fdesign",[409,209,40,243,410,40],"26048404","mekster",[412,209,39,407,104,40],"26048558",[414,209,34,368,415,40],"26044539","bschwindHN",[417,209,40,218,161,40],"26046031",[419,209,48,364,415,40],"26046254",[103,209,39,421,104,40],"project\u002Fpositive\u002Fidea",[423,209,40,218,424,40],"26043548","adamnemecek",[88,209,39,323,89,40],[427,209,39,323,428,40],"26043836","krick",[129,209,40,430,130,40],"commenter\u002Fneutral\u002Fperformance",[432,209,40,243,433,40],"26043907","jdright",[435,209,40,243,436,40],"26043943","staticassertion",[438,209,40,218,433,40],"26043992",[440,209,40,218,441,40],"26044785","unrealhoang",[133,209,34,368,134,40],[444,209,40,218,433,40],"26044057",[446,209,40,243,168,40],"26056290",[152,448,48,449,153,40],13,"project\u002Fmixed\u002Fdesign",[],[452,457,462,466,470,475],{"id":453,"name":454,"points":455,"category":456},"26069621","Clerk",582,"web_saas",{"id":458,"name":459,"points":460,"category":461},"26087892","Building Your Mouseless Development Environment",353,"learning_science",{"id":463,"name":464,"points":465,"category":20},"26048993","Epub.to",246,{"id":467,"name":468,"points":469,"category":456},"26038501","Remarkbox",233,{"id":471,"name":472,"points":473,"category":474},"26048800","LibreTranslate",216,"languages",{"id":476,"name":477,"points":478,"category":20},"26056052","Stamp",195,false,"v2",{"id":482,"name":5,"line":6,"ai":479,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":483,"top":18,"kw":484,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":485,"url":9,"mix":486,"praise":84,"objection":112,"sub":21},26042463,0.28,[24,25,26,27,28],"5000003105500000053553331303000053555013",[32,33,34,35],1794036602681]