Giter Club home page Giter Club logo

caster's Introduction

NTRIP caster

NTRIP caster library with support for:

  • NTRIP V1/V2
  • HTTP/RTSP/RTP
  • "Push/pull" (NTRIP client/server) connections to other casters
  • Raw TCP/IP server/client
  • Serial port reading/writing
  • File reading/writing
  • Extensible authentication system
  • RTCM/NMEA decoding
  • Sourcetable filtering

Installing

npm install -S @ntrip/caster

Basic Usage

const caster = new Caster({
    authManager: {
        async authenticate(auth: AuthRequest) {
            return {...auth, authenticated: true}
        }
    }
});
caster.addTransport(NtripTransport.new({port: 2101}));

Transports

NTRIP Caster

export interface NtripTransportOptions {
    port: number;
    tls?: tls.SecureContextOptions & tls.TlsOptions;

    protocols?: {
        http?: boolean;
        rtsp?: boolean;
        rtp?: boolean;
    },

    versions?: {
        [NtripVersion.V1]?: boolean;
        [NtripVersion.V2]?: boolean;
    }

    browserFavicon?: () => Buffer;
    browserStreamAccess?: boolean;
}

NtripTransport.new({port: 2101});

NTRIP Server/Client

export interface NtripPushPullTransportOptions {
    mode: 'push' | 'pull';

    remote: {
        host: string;
        port: number;
        family?: string;
    }
    tls?: tls.SecureContextOptions & tls.CommonConnectionOptions;

    protocol: 'http' | 'rtsp' | 'rtp';

    localMountpoint: string;
    remoteMountpoint: string;

    ntripVersion: NtripVersion;

    localStr?: string;
    localGga?: string;

    remoteStr?: string;
    remoteGga?: string;

    credentials?: {
        basic?: {username: string, password: string};
        bearer?: string;
        secret?: string;
    }
}

NtripPushPullTransport.new({
    mode: 'pull',
    
    remote: {
        host: 'euref-ip.net',
        port: 2101
    },

    localMountpoint: 'ACOR00ESP0_MIRROR',
    remoteMountpoint: 'ACOR00ESP0',
    
    ntripVersion: NtripVersion.V2,

    credentials: {
        basic: {
            username: 'test',
            password: 'test'        
        }
    }
});

Testing

npm test

License

GPLv3

Contributions

Contributions via pull requests are welcome. Please ensure that code style matches that of the existing files.

caster's People

Contributors

nebkat avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.