National Patience Month

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

    4.2.0 • Public • Published

    js-sdsl logo

    A javascript standard data structure library which benchmark against C++ STL

    NPM Version Build Status Coverage Status GITHUB Star NPM Downloads Gzip Size Rate this package MIT-license GITHUB-language

    English | 简体中文

    Included data structures

    • Stack - first in first out stack.
    • Queue - first in last out queue.
    • PriorityQueue - heap-implemented priority queue.
    • Vector - protected array, cannot to operate properties like length directly.
    • LinkList - linked list of non-contiguous memory addresses.
    • Deque - double-ended-queue, O(1) time complexity to unshift or getting elements by index.
    • OrderedSet - sorted set which implemented by red black tree.
    • OrderedMap - sorted map which implemented by red black tree.
    • HashSet - refer to the polyfill of ES6 Set.
    • HashMap - refer to the polyfill of ES6 Map.

    ⚔️ Benchmark

    We are benchmarking against other popular data structure libraries. In some ways we're better than the best library. See benchmark.

    🖥 Supported platforms

    IE / Edge
    IE / Edge
    Firefox
    Firefox
    Chrome
    Chrome
    Safari
    Safari
    Opera
    Opera
    NodeJs
    NodeJs
    Edge 12 31 49 10 36 10

    📦 Download

    Download directly by cdn:

    Or install js-sdsl using npm:

    npm install js-sdsl

    Or you can download the isolation packages containing only the containers you want:

    package npm size docs
    @js-sdsl/stack NPM Package GZIP Size link
    @js-sdsl/queue NPM Package GZIP Size link
    @js-sdsl/priority-queue NPM Package GZIP Size link
    @js-sdsl/vector NPM Package GZIP Size link
    @js-sdsl/link-list NPM Package GZIP Size link
    @js-sdsl/deque NPM Package GZIP Size link
    @js-sdsl/ordered-set NPM Package GZIP Size link
    @js-sdsl/ordered-map NPM Package GZIP Size link
    @js-sdsl/hash-set NPM Package GZIP Size link
    @js-sdsl/hash-map NPM Package GZIP Size link

    🪒 Usage

    You can visit our official website to get more information.

    To help you have a better use, we also provide this API document.

    For previous versions of the documentation, please visit:

    https://js-sdsl.org/js-sdsl/previous/v${version}/index.html

    E.g.

    https://js-sdsl.org/js-sdsl/previous/v4.1.5/index.html

    For browser

    <script src="https://unpkg.com/js-sdsl/dist/umd/js-sdsl.min.js"></script>
    <script>
        const {
          Vector,
          Stack,
          Queue,
          LinkList,
          Deque,
          PriorityQueue,
          OrderedSet,
          OrderedMap,
          HashSet,
          HashMap
        } = sdsl;
        const myOrderedMap = new OrderedMap();
        myOrderedMap.setElement(1, 2);
        console.log(myOrderedMap.getElementByKey(1)); // 2
    </script>

    For npm

    // esModule
    import { OrderedMap } from 'js-sdsl';
    // commonJs
    const { OrderedMap } = require('js-sdsl');
    const myOrderedMap = new OrderedMap();
    myOrderedMap.setElement(1, 2);
    console.log(myOrderedMap.getElementByKey(1)); // 2

    🛠 Test

    Unit test

    We use jest library to write unit tests, you can see test coverage on coveralls. You can run yarn test:unit command to reproduce it.

    For performance

    We tested most of the functions for efficiency. You can go to gh-pages/performance.md to see our running results or reproduce it with yarn test:performance command.

    You can also visit here to get the result.

    ⌨️ Development

    Use Gitpod, a free online dev environment for GitHub.

    Open in Gippod

    Or clone locally:

    $ git clone https://github.com/js-sdsl/js-sdl.git
    $ cd js-sdsl
    $ npm install
    $ npm run dev   # development mode

    Then you can see the output in dist/cjs folder.

    🤝 Contributing

    Feel free to dive in! Open an issue or submit PRs. It may be helpful to read the Contributor Guide.

    Contributors

    Thanks goes to these wonderful people:


    Takatoshi Kondo

    💻 ⚠️

    noname

    💻

    This project follows the all-contributors specification. Contributions of any kind welcome!

    ❤️ Sponsors and Backers

    The special thanks to these sponsors or backers because they provided support at a very early stage:

    eslint logo

    Thanks also give to these sponsors or backers:

    sponsors

    backers

    🪪 License

    MIT © ZLY201

    Install

    npm i js-sdsl

    Homepage

    js-sdsl.org/

    DownloadsWeekly Downloads

    7,895,661

    Version

    4.2.0

    License

    MIT

    Unpacked Size

    1.09 MB

    Total Files

    153

    Last publish

    Collaborators

    • noname0310
    • yaozilong