Nodeschool Public Materials

    TypeScript icon, indicating that this package has built-in type declarations

    1.0.16 • Public • Published

    Computer Science

    A collection of Computer Science algorithms and data structures implemented using bleeding-edge JavaScript features and capabilities

    GitHub Release NPM Release Latest Status Release Status


    ⚠️ Notice: This lib uses experimental features that are not supported by all bundlers or browsers ⚠️

    Algorithms and data structures are essential foundations if you ever want to advance in the professional development world. The goal of this library is to provide a modern Javascript specific reference to study and experiment with a wide range of general purpose algorithms and data structures. This is by-no-means the first JS lib of its kind but it is the first that is 100% dedicated to using modern JS practices and patterns.

    Modern Javascript

    ECMAScript standards have come a long way in the past 5 years (ie ES2015 - ES2020) but it will take a lot of time for the rest of the greater JS ecosystem to catch up. This library is a 'clean room' implementation, written from scratch to use modern practices by default.

    For Example:

    • all modules ES modules
    • index.js define the public API
    • no build-tooling required
    • classes are used liberally
    • [Symbol.iterator] definitions for data structures
    • cross-browser compatibility is a low priority
    • in Node.js this package loads as type=module
    • CommonJS compatible

    That means...

    Not only does this package provide a useful reference for Computer Science principles but it also works as a reference for Modern JS best-practices.


    All modules are written in VanillsJS as ES modules. All algorithms and data structures can be imported from the entry point.


    import { LinkedList, Stack } from '@vanillaes/computer-science';

    Data Structures


    Disjoint sets are used to determine the connectivity within a graph by grouping vertices into unique sets.


    Linear data structures get their name because they are typically used to map 1-to-1 relationships between data elements in a one-dimensional fashion.



    Related Materials


    npm i @vanillaes/computer-science

    DownloadsWeekly Downloads






    Unpacked Size

    60.1 kB

    Total Files


    Last publish


    • evanplaice