[{"data":1,"prerenderedAt":578},["ShallowReactive",2],{"project-43614285":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":45,"post_text":48,"what":49,"said":97,"maker_in_thread":180,"shape":193,"grid":196,"attempts":541,"same_week":542,"maker_shows":46,"maker_hidden":570,"reader_version":571,"card":572},"43614285","Lux","A luxurious package manager for Lua","title","Show HN: Lux – A luxurious package manager for Lua","https:\u002F\u002Fmrcjkb.dev\u002Fposts\u002F2025-04-07-lux-announcement.html","mrcjkb.dev","mrcjkb",1744049603,2025,268,136,209,3837,6,"legend","dev_tools","package manager","cli",[24,25,26,27],"lua package manager","luarocks alternative","lua dependencies","neovim plugins","debated",-0.028,{"positive":31,"neutral":32,"mixed":33,"critical":34},12,23,0,13,48,{"idea":37,"execution":40,"design":42,"docs":43,"performance":44},{"positive":38,"critical":39},5,3,{"positive":33,"critical":41},2,{"positive":39,"critical":18},{"positive":33,"critical":41},{"positive":39,"critical":33},[33,33,33,33,33,33,33,33,33,38,38,46,46,46,47,46,46,33,33,39,39,38,46,38,39,39,39,39,38,46,39,33,33,33,33,46,39,41,38,38],1,4,null,{"problem":50,"audience":48,"pricing":48,"motivation":66,"time_to_build":48,"stack":73,"openness":96,"stage":96,"team_size":96},{"value":51,"source":52,"evidence":53},"Lua package management is clunky; luarocks is hard to use and opinionated","commenter",[54,58,62],{"id":55,"by":56,"text":57},"43617234","MyOutfitIsVague","This sounds amazing. I use Lua a lot, and luarocks has been nearly useless for anything I need it to do because it's so heavily opinionated. For anything more than \"install a…",{"id":59,"by":60,"text":61},"43614476","zaruvi","This looks interesting. At one point I wanted to use a third party library using luarocks, but I gave up because it wasn't immediately working\u002Fstraight-forward. It may have been…",{"id":63,"by":64,"text":65},"43614624","opem","finally, someone did it! luarocks was never an intuitive solution, and I feel this unintuitive ecosystem is one of the reasons for lua's low adoption.",{"value":67,"source":68,"evidence":69},"Improve the nixpkgs Lua and Neovim ecosystems","maker",[70],{"id":71,"by":11,"text":72},"43624449","One of the motivations for Lux is to improve the nixpkgs Lua and Neovim ecosystems.",[74,85],{"value":75,"source":52,"evidence":76},"Rust",[77,81],{"id":78,"by":79,"text":80},"43618012","1vuio0pswjnm7","A package manager for Lua that depends on Rust.",{"id":82,"by":83,"text":84},"43622978","inftech","A package manager written in Rust for a language designed to be embedded in C and which relies heavily on C libraries, and also configured in TOML when Lua itself was created to…",{"value":86,"source":52,"evidence":87},"TOML manifest",[88,92],{"id":89,"by":90,"text":91},"43622465","kreco","And TOML.",{"id":93,"by":94,"text":95},"43614947","debugnik","I'm excited to check it out, but why does this use a .toml file when Lua was already designed for configuration files? Why isn't it just a Lua script?","unknown",{"praise":98,"objections":118,"requests":139,"questions":158,"alternatives":170},[99,111],{"value":100,"source":52,"evidence":101},"Welcome better Lua package tooling than luarocks",[102,103,107],{"id":63,"by":64,"text":65},{"id":104,"by":105,"text":106},"43622499","thundervelvet","Nice! Lua really needed something like this to make packages easier.",{"id":108,"by":109,"text":110},"43614509","rcarmo","I like this. I've been wanting to have a reproducible way to install Lua packages across machines for a while now.",{"value":112,"source":52,"evidence":113},"Good support for the Neovim ecosystem",[114],{"id":115,"by":116,"text":117},"43617318","ivanjermakov","Thank you for treating neovim ecosystem first-class. During plugin development I missed ease of use of third party libraries I have with e.g. Rust and Typescript.",[119,124,132],{"value":120,"source":52,"evidence":121},"Rust and TOML go against Lua's embedded, simple culture",[122,123],{"id":82,"by":83,"text":84},{"id":78,"by":79,"text":80},{"value":125,"source":52,"evidence":126},"Config should be Lua rather than TOML",[127,131],{"id":128,"by":129,"text":130},"43614951","Arch485","Why not use Lua for config instead of TOML? IIRC Lua was originally a data schema language, so it should be good for it.",{"id":93,"by":94,"text":95},{"value":133,"source":52,"evidence":134},"Language-specific package managers are the wrong direction; prefer nix",[135],{"id":136,"by":137,"text":138},"43619482","zokier","Personally I'm really tired of all these language specific package managers. I just don't feel that is the right direction, stuff like nix seem like much better approach.",[140,147,151],{"value":141,"source":52,"evidence":142},"Integrate with package.path and package.cpath",[143],{"id":144,"by":145,"text":146},"43614360","andrewmcwatters","I don't see this listed here or the other associated sites, so I'll ask: 1. Does this integrate natively with `package.path` and `package.cpath`? 2. Does it detect non-standard,…",{"value":148,"source":52,"evidence":149},"Support installing from GitHub user\u002Frepository",[150],{"id":144,"by":145,"text":146},{"value":152,"source":52,"evidence":153},"Add luvit integration",[154],{"id":155,"by":156,"text":157},"43615667","johnisgood","Has anyone used this? In my ~\u002F.bash_profile, I have \"eval \"$(luarocks path --bin)\"\" which is very slow, and it needs to be called. How does this work with \"lux\"? Additionally, I…",[159,166],{"value":160,"source":52,"evidence":161},"How are diamond dependencies handled?",[162],{"id":163,"by":164,"text":165},"43616224","Onavo","How do you deal with the diamond dependency problem? Do you allow two different versions of a package to be exist simultaneously?",{"value":167,"source":52,"evidence":168},"Does it work with LuaJIT and existing luarocks path setup?",[169],{"id":155,"by":156,"text":157},[171,176],{"value":172,"source":52,"evidence":173},"luarocks",[174,175],{"id":55,"by":56,"text":57},{"id":128,"by":129,"text":130},{"value":177,"source":52,"evidence":178},"nix",[179],{"id":136,"by":137,"text":138},{"comments":181,"answered":182,"key":183},16,7,[184,187,190],{"id":185,"text":186},"43615576","That's a neat suggestion, thanks. Lux will need some time to become mature, but building a large multi-platform project like koreader would definitely be a nice goal.",{"id":188,"text":189},"43619970","That sounds like a great idea! I've opened [an issue](https:\u002F\u002Fgithub.com\u002Fnvim-neorocks\u002Flux\u002Fissues\u002F550) in our repo. Feel free to ping us there :)",{"id":191,"text":192},"43614440","1. The commands, `lx run` and `lx lua` will set the `PATH`, `LUA_PATH` and `LUA_CPATH`. And there's a `lx path` command for setting those environment variables. 2. It defaults to…",{"commenters":194,"max_depth":182,"maker_replies":181,"first_comment_mins":182,"lifespan_hours":195},75,357,[197,201,205,208,211,214,216,218,221,224,226,229,232,234,237,239,242,245,248,250,253,256,259,262,265,267,270,273,276,279,281,285,287,289,292,295,299,300,302,303,307,310,314,316,318,320,322,323,324,326,330,332,334,338,341,344,347,349,351,353,356,358,362,365,368,370,372,374,376,378,380,382,385,388,391,394,396,398,400,403,405,407,410,412,415,416,417,419,422,424,426,428,430,432,434,437,439,441,443,444,446,450,452,456,458,460,463,465,468,471,473,475,478,480,483,486,488,490,492,495,498,501,503,505,508,510,512,514,517,520,523,526,528,530,534,538],[198,33,33,199,200,33],"43614541","other\u002Fneutral\u002Fnone","nerflad",[202,33,33,203,204,33],"43616728","commenter\u002Fneutral\u002Fnone","jmercouris",[206,33,33,199,207,33],"43616768","0x3444ac53",[209,33,33,199,210,33],"43616808","creata",[212,33,33,199,213,33],"43622912","cmdrk",[215,33,33,199,207,33],"43623340",[217,33,33,199,207,33],"43616777",[219,33,33,199,220,33],"43617589","cy_hauser",[222,33,33,203,223,33],"43621599","behnamoh",[225,33,33,203,207,33],"43623311",[227,33,33,199,228,33],"43616926","nateglims",[230,33,33,203,231,33],"43617502","gavmor",[233,33,33,199,156,33],"43619022",[235,33,33,203,236,33],"43621143","braebo",[238,33,33,199,156,33],"43623361",[240,33,33,203,241,33],"43763179","flavio81",[243,33,33,203,244,33],"43620667","soapdog",[246,33,33,199,247,33],"43624962","sundarurfriend",[249,33,33,199,231,33],"43617499",[251,33,33,199,252,33],"43617550","timewizard",[254,33,33,199,255,33],"43617672","Barrin92",[257,33,33,203,258,33],"43618168","alex-robbins",[260,33,33,203,261,33],"43619375","kazinator",[263,33,33,199,264,33],"43618453","galaxyLogic",[266,33,33,199,223,33],"43618464",[268,33,33,199,269,33],"43618513","jolux",[271,33,33,199,272,33],"43619255","pabs3",[274,33,33,199,275,33],"43620283","tcfhgj",[277,33,33,199,278,33],"43631721","xonre",[280,33,33,199,241,33],"43763198",[282,46,39,283,284,33],"43614814","maker\u002Fneutral\u002Fidea","jjtech",[185,46,33,286,11,46],"maker\u002Fneutral\u002Fnone",[55,41,38,288,56,33],"project\u002Fpositive\u002Fidea",[290,41,33,199,291,33],"43617567","shortrounddev2",[293,41,33,199,294,33],"43623902","giraffe_lady",[296,39,38,297,298,33],"43619068","maker\u002Fpositive\u002Fnone","droelf",[188,39,33,286,11,46],[144,47,39,301,145,33],"project\u002Fneutral\u002Fnone",[191,47,33,301,11,46],[304,47,46,305,306,33],"43616089","project\u002Fcritical\u002Fexecution","MomsAVoxell",[308,47,33,309,11,46],"43617107","maker\u002Fneutral\u002Fexecution",[311,47,39,312,313,33],"43618076","project\u002Fneutral\u002Fexecution","shakna",[82,38,46,315,83,33],"project\u002Fcritical\u002Fdesign",[317,38,33,286,11,46],"43625699",[136,18,46,319,137,33],"project\u002Fcritical\u002Fidea",[71,18,33,321,11,46],"project\u002Fneutral\u002Fidea",[78,182,46,305,79,33],[89,182,46,315,90,33],[325,182,33,286,11,46],"43624466",[327,182,38,328,329,33],"43629693","project\u002Fpositive\u002Fdesign","legends2k",[108,331,38,288,109,33],8,[333,331,33,203,306,33],"43616017",[335,336,46,319,337,33],"43676568",9,"binary132",[128,339,39,340,129,33],10,"project\u002Fneutral\u002Fdesign",[342,339,46,315,343,33],"43615402","tengbretson",[345,339,39,340,346,33],"43623699","hgs3",[348,339,33,203,294,33],"43623963",[350,339,33,203,346,33],"43624392",[352,339,33,203,294,33],"43625763",[354,339,33,203,355,33],"43670173","pmarreck",[357,339,33,340,11,46],"43615471",[359,339,33,360,361,33],"43616034","commenter\u002Fneutral\u002Fdesign","mikepurvis",[363,339,33,203,364,33],"43618186","lenkite",[366,339,33,203,367,33],"43623275","seanw444",[369,339,33,203,364,33],"43624553",[371,339,33,360,361,33],"43624755",[373,339,39,340,346,33],"43624334",[375,339,33,340,11,46],"43625912",[377,339,39,340,278,33],"43631806",[379,339,33,340,11,46],"43647544",[93,381,39,340,94,33],11,[383,381,38,328,384,33],"43615038","VWWHFSfQ",[386,381,33,199,387,33],"43615262","ecoffey",[389,381,33,199,390,33],"43616149","SOLAR_FIELDS",[392,381,33,199,393,33],"43616272","thayne",[395,381,33,199,390,33],"43616522",[397,381,46,315,94,33],"43616265",[399,381,33,340,11,46],"43616456",[401,381,39,340,402,33],"43617071","sitkack",[404,381,33,321,11,46],"43621905",[406,381,38,328,384,33],"43616458",[408,381,46,315,409,33],"43618996","juped",[411,381,39,340,244,33],"43620687",[413,381,39,340,414,33],"43621859","lvass",[115,31,38,288,116,33],[155,34,39,301,156,33],[418,34,33,301,11,46],"43615788",[420,34,39,421,156,33],"43616450","project\u002Fneutral\u002Fdocs",[423,34,33,421,11,46],"43621913",[425,34,39,421,156,33],"43625279",[59,427,39,312,60,33],14,[429,427,39,301,145,33],"43614540",[431,427,33,199,306,33],"43615894",[433,427,33,199,291,33],"43617585",[435,427,33,199,436,33],"43620357","mjmas",[438,427,33,199,156,33],"43631316",[440,427,33,203,156,33],"43616757",[104,442,38,288,105,33],15,[163,181,39,321,164,33],[445,181,33,340,11,46],"43616487",[447,448,46,315,449,33],"43625753",17,"meel-hd",[451,448,33,340,11,46],"43626272",[453,454,46,319,455,33],"43618914",18,"redleader55",[63,457,38,288,64,33],19,[459,457,33,199,384,33],"43614705",[461,457,33,199,462,33],"43614767","acureau",[464,457,33,199,384,33],"43615008",[466,467,33,199,355,33],"43616182",20,[469,467,33,199,470,33],"43616249","frfl",[472,467,33,199,355,33],"43616363",[474,467,33,199,470,33],"43616869",[476,467,33,199,477,33],"43617591","mbirth",[479,467,33,199,355,33],"43622225",[481,467,33,199,482,33],"43630114","soegaard",[484,467,33,485,137,33],"43619442","other\u002Fneutral\u002Fperformance",[487,467,33,199,470,33],"43620102",[489,467,33,199,137,33],"43622654",[491,467,33,199,210,33],"43616872",[493,467,33,199,494,33],"43619029","sebstefan",[496,467,33,199,497,33],"43620556","anilakar",[499,467,46,500,494,33],"43621524","project\u002Fcritical\u002Fdocs",[502,467,39,301,355,33],"43622219",[504,467,33,199,294,33],"43622729",[506,467,33,199,507,33],"43624363","RunningDroid",[509,467,39,301,355,33],"43633975",[511,467,46,500,497,33],"43641048",[513,467,39,301,355,33],"43669778",[515,467,33,199,516,33],"43620109","cap11235",[518,467,39,321,519,33],"43620813","imhoguy",[521,467,39,321,522,33],"43635467","unforswearing",[524,467,38,525,278,33],"43632083","project\u002Fpositive\u002Fperformance",[527,467,38,525,355,33],"43633831",[529,467,38,525,355,33],"43687041",[531,532,39,321,533,33],"43621937",21,"kunley",[535,536,33,199,537,33],"43615649",22,"firtoz",[539,536,33,199,540,33],"43615711","benwilber0",[],[543,547,552,557,561,565],{"id":544,"name":545,"points":546,"category":20},"43613194","Browser MCP",616,{"id":548,"name":549,"points":550,"category":551},"43593789","Whatsit",513,"games",{"id":553,"name":554,"points":555,"category":556},"43569190","OpenNutrition",311,"data",{"id":558,"name":559,"points":560,"category":20},"43627758","DrawDB",263,{"id":562,"name":563,"points":564,"category":20},"43573539","GitMCP",185,{"id":566,"name":567,"points":568,"category":569},"43569724","C3",175,"languages",false,"v2",{"id":573,"name":5,"line":6,"ai":570,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":574,"top":18,"kw":575,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":576,"url":9,"mix":577,"praise":100,"objection":120,"sub":21},43614285,-0.03,[24,25,26,27],"0000000005511141100335153333513000013255",[31,32,33,34],1794036672480]