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

    0.1.3 • Public • Published

    talib-web

    TA-Lib, the technical analysis library written in C, ported to WebAssembly. Plus a nice API wrapper layer, typescript support and docs.

    talib-web is based on talib.js,and make some changes to using it easier.

    Installation

    npm install --save talib-web
    

    Usage

    Normal

    const talib = require("talib-web");
    
    const inReal = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    
    async function main() {
      await init(/* optionally pass in .wasm file path here */);
      console.log(talib.ADD({ inReal0: inReal, inReal1: inReal }));
    }
    
    main();

    Or:

    import { init, ADD } from "talib-web";
    
    async function main() {
      await init(/* optionally pass in .wasm file path here */);
      const inReal = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
      console.log("talib.ADD result:", ADD({ inReal0: inReal, inReal1: inReal }));
    }
    
    main();

    output:

    { output: [
        2,  4,  6,  8, 10,
      12, 14, 16, 18, 20
    ] }

    Use TAFuncs object

    import { init,  TAFuncs } from "talib-web";
    
    async function main() {
      await init(/* optionally pass in .wasm file path here */);
      const inReal = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
      console.log("TAFuncs.ADD result:", TAFuncs.ADD({ inReal0: inReal, inReal1: inReal }));
    
      //you can call other talib function easily without import,just like TAFuncs.MA()
    }

    Documentation

    Visit https://ancheGT.github.io/talib-web/

    Docs are generated using typedoc and hosted on GitHub Pages.

    Develop

    develop environment:

    • OS: CentOS 7
    • node: v14.15.5
    • NPM: 6.14.11
    • emscripten: 2.0.34
    • tsc: 4.5.2

    dependencies installation

    • emscripten

    • npm

       npm install typescript -g
       npm install

    build:

    make clean # clean temp
    make

    branchs

    • master-hackape: original repo of talib.js

    • master-new: current repo

    • gh-pages: github pages, after make branch master-new, copy the docs dir to this branch.It's relies on the setting of GitHub Pages -> Source

    Troubleshooting:

    • in terminal, run make got: error while loading shared libraries: libatomic.so.1: cannot open shared obj

      • run command: yum -y install libatomic
    • in browser console,got:

       index.esm.js?80e5:561 
       		
       	Uncaught (in promise) RuntimeError: abort(CompileError: WebAssembly.instantiate(): expected magic word 00 61 73 6d, found 3c 21 44 4f @+0). Build with -s ASSERTIONS=1 for more info.
       	at abort (webpack-internal:///./node_modules/talib-web/lib/index.esm.js:886)
       	at eval (webpack-internal:///./node_modules/talib-web/lib/index.esm.js:962)
       index.esm.js?80e5:2146 
       		
       	Uncaught (in promise) Error: TA-Lib WASM runtime init fail.
       Error: 
       abort(CompileError: WebAssembly.instantiate(): expected magic word 00 61 73 6d, found 3c 21 44 4f @+0). Build with -s ASSERTIONS=1 for more info.
       	at eval (webpack-internal:///./node_modules/talib-web/lib/index.esm.js:2471)
      
      • Pass a URL param to init,like this: await init("https://unpkg.com/talib-web@0.1.2/lib/talib.wasm");

      • You can host this file yourself if you like. It’s just a static asset, like a picture, nothing magical.

      • If you decide to host it, 2 things to check:

        • Make sure the URL is accessible from your origin, e.g. double check CORS config if involved.
        • Make sure the MIME type is correctly set to application/wasm.

    Install

    npm i talib-web

    DownloadsWeekly Downloads

    11

    Version

    0.1.3

    License

    BSD-3-Clause

    Unpacked Size

    852 kB

    Total Files

    8

    Last publish

    Collaborators

    • newproplus