TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: What is the coolest JS library out there?

95 pointsby rohanpaiover 12 years ago
Pretty open ended question. Just trying to see what cool stuff is out there to play around with.

47 comments

simonsarrisover 12 years ago
(disclosure: shameless plug)<p>I make GoJS, a HTML canvas-based diagramming library with all sorts of useful features. Node and link concepts (with data binding, templating), layouts, an undo manager, lots of customizable tools, drag and drop/cut and paste.<p>In other words, a very rich set of diagramming features atop HTML5 canvas.<p><i>I</i> think its cool, because it took two years of canvas tomfoolery to get working well, and I think its much faster than similar diagramming libraries for canvas out right now. A lot of technically interesting stuff was encountered while making it, but I haven't had the time to write about my collected intricacies yet.<p><a href="http://gojs.net/beta/" rel="nofollow">http://gojs.net/beta/</a><p>Or straight to samples:<p><a href="http://gojs.net/beta/samples/flowchart.html" rel="nofollow">http://gojs.net/beta/samples/flowchart.html</a><p>Firefox warning[1] for that specific sample though. I need to change the default sample this week.<p>[1] Super frustrating! The new IonMonkey JavaScript engine crashes under very certain conditions that are met during my link avoidsNodes algorithm. This means that Firefox 18 and 19 (but not 17 and 20) will crash on the Flowchart sample, because the link routing is set to use avoidsNodes. It's unfortunate but even though they're aware of the bug they aren't going to bother fixing it for FF19.<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=830063" rel="nofollow">https://bugzilla.mozilla.org/show_bug.cgi?id=830063</a><p>~~~<p>By the way, if there are other canvas library authors out there who have had interesting (or downright weird) issues with various canvas implementations, I'd love to hear from you!
评论 #5234478 未加载
评论 #5234602 未加载
评论 #5234491 未加载
daleharveyover 12 years ago
Seems like a reasonable time to self promote<p><a href="http://pouchdb.com/" rel="nofollow">http://pouchdb.com/</a><p>PouchDB is a full reimplementation of CouchDB inside the browser (using browser storage), you can build applications that work offline then sync your data with 'the cloud'
评论 #5234416 未加载
评论 #5234485 未加载
评论 #5234284 未加载
tomasienover 12 years ago
I know this is a crap answer to this question, but for me what is "cool" is what can easily do things that I think are awesome. For me, that's Angular.js.<p><a href="http://angularjs.org/" rel="nofollow">http://angularjs.org/</a> Angular UI is amazing <a href="http://angular-ui.github.com/" rel="nofollow">http://angular-ui.github.com/</a> And Angular for Bootstrap is also amazing <a href="http://angular-ui.github.com/bootstrap/" rel="nofollow">http://angular-ui.github.com/bootstrap/</a><p>I'm not a great programmer, so that's what excites me. It's flexible enough that as you get better as a programmer, you can plug that right in.<p>And that's what I think is cool.
shtylmanover 12 years ago
<a href="http://browserify.org/" rel="nofollow">http://browserify.org/</a> because it will fundamentally change how you approach writing and organizing front end code. The moment you stop writing boilerplate code to glue your disparate files together and start using a simple module system you will never look back. This is more than a library, it is a way of re-thinking how you can maintain js libraries going forward.
评论 #5234651 未加载
评论 #5234678 未加载
beefsackover 12 years ago
I'd have to say Q promises (<a href="https://github.com/kriskowal/q" rel="nofollow">https://github.com/kriskowal/q</a>, adds promises to JS for much cleaner async code).<p>Even though it's not "cool" in the sense that it's very low level and doesn't do fancy UI stuff, my asynchronous code has become significantly cleaner and easier to maintain through using promises rather than having callback pyramids. The ability to wait for a number of promises to resolve before firing the next makes life so much easier too.
评论 #5234283 未加载
评论 #5234300 未加载
double051over 12 years ago
Three.js is a wonderful way to experiment with 3D programming.<p>Github repo: <a href="https://github.com/mrdoob/three.js/" rel="nofollow">https://github.com/mrdoob/three.js/</a><p>Examples: <a href="http://mrdoob.github.com/three.js/" rel="nofollow">http://mrdoob.github.com/three.js/</a>
strawsover 12 years ago
I'm really in love with Component, which is a sort of package manager for front end development<p><a href="http://component.jit.su/" rel="nofollow">http://component.jit.su/</a><p>It breaks down large frameworks like jQuery, Underscore, Backbone, Twitter Bootstrap, etc into small, reusable, and composable micro libraries. There are UI elements like tool tips and modals, wonderful and tiny DOM manipulation tools, well documented AJAX libraries, and more low-level functional and control-flow related tools. It's really amazing.<p>It's by TJ Holowaychuk too, who is huge in the node community (Express, Jade, Mocha, Stylus, Connect, and many others).
agencyover 12 years ago
d3.js (<a href="http://d3js.org/" rel="nofollow">http://d3js.org/</a>) is the king of visualization libraries
评论 #5234259 未加载
评论 #5234346 未加载
评论 #5234450 未加载
hayksaakianover 12 years ago
The one that makes everyone's lives easier:<p>jQuery.<p>Its not sexy, but it gets the job done for pretty much everyone.
评论 #5234410 未加载
评论 #5234464 未加载
评论 #5234648 未加载
byoung2over 12 years ago
Async: <a href="https://github.com/caolan/async" rel="nofollow">https://github.com/caolan/async</a> - it helps avoid callback hell. I use it in node.js.
评论 #5234355 未加载
评论 #5234237 未加载
davisrover 12 years ago
I'm a huge fan of Enyo (<a href="http://enyojs.com" rel="nofollow">http://enyojs.com</a>). It's stupid-easy to get a native-feeling app running that works across (nearly) every modern device. Mostly, I love its UI components (which are expanded by the associated Onyx library), which means I have less lines of code to write -- which is always better.
评论 #5235717 未加载
chjjover 12 years ago
This is going to be the most shameless plug I've ever done in my life, but I actually believe my css selector engine ( <a href="https://github.com/chjj/zest" rel="nofollow">https://github.com/chjj/zest</a> ) beats every other one into the ground in terms of speed, features, and extensibility. I've probably just been waiting for an opportunity to shout it from the rooftops. Unfortunately, it's kind of hard for a selector engine to gain momentum since people don't really use them standalone unless they're writing a dom library.<p>It's not the coolest, but I think it's the coolest selector engine. I'm also totally biased.
评论 #5234404 未加载
dansoover 12 years ago
underscore.js has so many useful helper functions while being lightweight and unobtrusive:<p><a href="http://underscorejs.org/" rel="nofollow">http://underscorejs.org/</a>
评论 #5234312 未加载
评论 #5235011 未加载
kodablahover 12 years ago
TypeScript. Fastest JS parser I've seen (at least in JS compared to coffeescript, esprima, narcissus, etc), bootstrapped in its own language, great type checker/inferencer, easy to follow codebase.
评论 #5235271 未加载
dottrapover 12 years ago
Cappuccino (with Objective-J). One of those, 'so batsh#t crazy, it's brilliant' things. Note they are one of those that make a distinction between a library and framework.<p><a href="http://280north.com" rel="nofollow">http://280north.com</a> <a href="http://www.cappuccino-project.org" rel="nofollow">http://www.cappuccino-project.org</a> <a href="http://arstechnica.com/apple/2008/06/cocoa-on-the-web-280-north-objective-j-and-cappuccino/" rel="nofollow">http://arstechnica.com/apple/2008/06/cocoa-on-the-web-280-no...</a>
RoboTeddyover 12 years ago
Bacon.js: <a href="https://github.com/raimohanska/bacon.js" rel="nofollow">https://github.com/raimohanska/bacon.js</a> -- functional reactive programming in javascript. It's another way out of callback hell when doing UI work.
评论 #5234296 未加载
rajraoover 12 years ago
My vote is for TypeScript (<a href="http://www.typescriptlang.org/" rel="nofollow">http://www.typescriptlang.org/</a>). It fixes some of the problems that I encountered while creating an enterprise class application and not being able to strongly type parameters, classes, etc (which meant that I had to open up every JS file to figure out what parameters a function truly required).
charliesomeover 12 years ago
fuckit.js: <a href="https://github.com/mattdiamond/fuckitjs" rel="nofollow">https://github.com/mattdiamond/fuckitjs</a>
评论 #5234627 未加载
TallboyOneover 12 years ago
I'm a fan of how well the Ace code editor handles text editing, vim, emacs, etc.<p>Non direct link (to plug my own site with lots of other similar stuff) <a href="http://pineapple.io/resources/ace-high-performance-embeddable-code-editor" rel="nofollow">http://pineapple.io/resources/ace-high-performance-embeddabl...</a><p>direct link <a href="http://ace.ajax.org/" rel="nofollow">http://ace.ajax.org/</a>
jpatteover 12 years ago
Knockout (<a href="http://knockoutjs.com/" rel="nofollow">http://knockoutjs.com/</a>) definitely rocked my world. Forget about manipulating the DOM with code (using jQuery or anything): now you have a nice separation between your UI (defined declaratively) and your business logic. Just change some observable values and voila, your UI is updated. I strongly recommend trying the site's tutorial: <a href="http://learn.knockoutjs.com" rel="nofollow">http://learn.knockoutjs.com</a><p>Also if you like Backbone.js, don't miss Knockback.js (<a href="http://kmalakoff.github.com/knockback/" rel="nofollow">http://kmalakoff.github.com/knockback/</a>). Now you have observable (view)models and collections. Definitely cool.
jakelazaroffover 12 years ago
Every so often, someone writes a tool that makes you (or me, at least) super excited about web development. In 2006, that was jQuery. In 2013, that tool for me is Backbone.<p><a href="http://backbonejs.org/" rel="nofollow">http://backbonejs.org/</a><p>Just instantiate a model with an endpoint and an ID and Backbone will do all your syncing for you. You can have views listen for changes to the models and update automatically. You can add easy support for client-side navigation via push state.<p>Backbone takes tedious tasks and makes them fun. Highly, highly recommended.
goatslackerover 12 years ago
lz is the fastest lazy functional library to work with lists.<p><a href="https://github.com/goatslacker/lz" rel="nofollow">https://github.com/goatslacker/lz</a><p>Why I think it's cool? Well it's really fast, and it's lazy which allows you to work with really big arrays. Plus it's a really tiny library providing you with a streamlined set of APIs for working with lists (similar to array.js/Enumerable)<p>If you're working with smaller lists it's probably best to go the lodash route, but if you want it to be lazy then I believe lz is the right tool for the job.<p>/shameless plug
aleksandrmover 12 years ago
Check out <a href="http://JSDB.io" rel="nofollow">http://JSDB.io</a> and <a href="http://pineapple.io" rel="nofollow">http://pineapple.io</a> -- both list a ton of cool JS libraries.
评论 #5265656 未加载
jerbilsover 12 years ago
Shameless plug time: I built Rekapi, which is a context-agnostic keyframe animation library. That means it works with DOM, Canvas, or whatever you need: <a href="http://rekapi.com/" rel="nofollow">http://rekapi.com/</a><p>It also supports exporting JavaScript keyframes to CSS3 @keyframes, as demonstrated with Stylie: <a href="http://jeremyckahn.github.com/stylie/" rel="nofollow">http://jeremyckahn.github.com/stylie/</a>
benmannsover 12 years ago
I've been having a lot of fun with <a href="https://github.com/harthur/brain" rel="nofollow">https://github.com/harthur/brain</a> (neural network implementation in JavaScript) lately. Perhaps it's not something you would use on a real, live site, but it is fun to prototype neural network stuff in the browser with easy access to the DOM, canvas, and WebGL.
评论 #5234729 未加载
Surioover 12 years ago
Rohan, Pretty difficult to parse "coolest JS library". The <i>"42"</i> for that question came up as "it depends for what" ;-)<p>Anyway, I use this site as a quick reference to see what is new in JS world. www.functionn.in The author seems to be pretty meticulous in his updates, so there's a lot of interesting libraries. Seems like a labour of love for him. (P.S: Thanks, Hirvesh)<p>There's also Hakim who comes up with some interesting stuff from time to time www.hakim.se<p>Here's another that came up on radar lately -- <a href="http://soulwire.github.com/Makisu/" rel="nofollow">http://soulwire.github.com/Makisu/</a><p>Subscribe to the smashing letter magazine's newsletters for a periodic stream of latest "cool" into your Inbox.<p>Hope that helps.
chunkyslinkover 12 years ago
<a href="http://sugarjs.com/" rel="nofollow">http://sugarjs.com/</a><p>From the site<p>"Sugar is a Javascript library that extends native objects with helpful methods. It is designed to be intuitive, unobtrusive, and let you do more with less code."
kingkool68over 12 years ago
I like TinySort which is a no-frills jQuery plugin to sort HTML elements. Great for data tables -&#62; <a href="http://tinysort.sjeiti.com/" rel="nofollow">http://tinysort.sjeiti.com/</a><p>Speaking of data tables, I wrote a little function to make table headers sticky so they stay at the top of the viewport as you scroll down a large table. <a href="https://github.com/kingkool68/stickyHeader" rel="nofollow">https://github.com/kingkool68/stickyHeader</a> No options, just include on the page, add a class of stickyHeader on the table and you're done.
评论 #5234488 未加载
jgalt212over 12 years ago
I like <i>sweetjs</i> which brings syntax macros to JavaScript. It hasn't got much traction yet, but I'm convinced someone will do something neat with it.<p><a href="http://sweetjs.org/" rel="nofollow">http://sweetjs.org/</a><p>An obvious use could be as a library building tool. i.e. All the macros could be restricted to the internal methods used to construct the library DSL. All the public methods could look like standard <i>js</i>, and the library users would be none the wiser to the <i>magic</i> used internally to make the library construction more efficient.
jesusabdullahover 12 years ago
Personally, I think <a href="https://github.com/kripken/emscripten/wiki" rel="nofollow">https://github.com/kripken/emscripten/wiki</a> is mind-blowingly amazing. Check out the demos for sure.
评论 #5235205 未加载
olegpover 12 years ago
Shameless plug here but I'd say Common Node is pretty good: <a href="https://github.com/olegp/common-node" rel="nofollow">https://github.com/olegp/common-node</a> - it lets you write your server using a synchronous style while retaining the low memory usage and quick start up speed of Node.js.<p>For example <a href="https://starthq.com" rel="nofollow">https://starthq.com</a> is using about 35MB of RAM and is easy to debug despite some pretty complex business logic around generating site thumbnails.
xiaomaover 12 years ago
I love underscore. It's basically the first thing I add on any project if I'm not using coffee script. Life is too short for programming everything from the ground up.
cheeaunover 12 years ago
For me, the coolest and most impressive JS lib would be <a href="http://lodash.com/" rel="nofollow">http://lodash.com/</a>
maxtardiveauover 12 years ago
I'd vote for AngularJS. It's just very clever. Kudos to the Google folks who came up with it.
lognover 12 years ago
Not a JS lib but for JS devs CouchDB/CouchApp rocks. Fully JS webapps with no db/app server distinction. Why does no one care about it anymore? Add BigCouch for scalability.
gbogover 12 years ago
<a href="https://github.com/dexteryy/OzJS" rel="nofollow">https://github.com/dexteryy/OzJS</a> a microkernel for modular javascript. Disc.: writen by a friend and colleague.
评论 #5234543 未加载
The1TrueGuyover 12 years ago
<a href="http://famo.us/c/" rel="nofollow">http://famo.us/c/</a> loved their demo at forbes. Haven't had a moment to do a hands-on with it yet but looks fun.
slaterover 12 years ago
Define "cool"? Ease of use? Length of features list? What?
评论 #5234221 未加载
Devlin_Donnellyover 12 years ago
I think impress.js is pretty cool.<p><a href="http://bartaz.github.com/impress.js/" rel="nofollow">http://bartaz.github.com/impress.js/</a>
readmeover 12 years ago
Definitely try hipster.js. It works with node, mongodb, and it runs on plan9. Meteor integration is in the works.
imtu80over 12 years ago
Check following link and you tell me <a href="http://jster.net/" rel="nofollow">http://jster.net/</a>.
评论 #5234604 未加载
sasanroseover 12 years ago
htpp://momentjs.com<p>A 5.5kb javascript date library for parsing, validating, manipulating, and formatting dates
franzeover 12 years ago
box2d-jquery, (note: i mashed, hacked'n'slashed it myself) when it's done it will be an html/dom based (physics) game engine (then it might even be useful), now the feedback i get is just:cool
tjmarshallover 12 years ago
PotatoSalad.js is the best.<p>I bet a bunch of you actually searched for that on google. What's sad is that is probably the name of some obscure testing library. What have we come to...?
评论 #5234392 未加载
dotborgover 12 years ago
Dojo Toolkit, amazing build system
trungonnewsover 12 years ago
Yui3 over jQuery any day.
dccoolgaiover 12 years ago
skrollr is pretty badass, IMO.