NSE is a rust cli binary and library for extracting real-time data from National Stock Exchange (India)

Overview

NSE

rust badge license badge copyleft badge Build and Release

Check out the sister projects NsePython and SaveKiteEnctoken which are Python & Javascript libraries to use the NSE and Zerodha APIs respectively

NSE is an easy to use rust CLI program and library for extracting real-time data from National Stock Exchange (India)

Features

  • Download EOD 1-Minute Data for NFO-FUT, NSE-EQ, NSE-Index, NSE-CDS from NSE Tame Charts.
  • Download Intraday Futures & Options Data Snapshots with all LTP & OI Data.
  • Multi-threading for network intensive subcommands
    • You can configure the maximum number of additional threads using the --threads options

Installation

nse is a compiled, statically linked program that does not require any external dependencies.

nse is coming to more package managers soon!

Cargo Install

If you have the Rust toolchain, you can also compile and install nse by running cargo install nse.

Remember to use an add-on like cargo-update to keep nse updated to the latest version!

GitHub Releases

  1. Download the asset suitable for your operating system from the latest release
  2. Unzip the file and move it to a folder in your path such as ~/bin
  3. Remember to check the releases page for any updates!

First Startup

When you first start up, the program will create a new data download directory automatically named as NSE_Downloads_Data in which the download files will be further categorised, subcatogorised and saved into dated folders.

NSE_DOWNLOADS_DATA
├───1-Minute-OHLCV-Data
│   ├───Commodity
│   │   └───11-May-2022
│   ├───Currency
│   │   └───11-May-2022
│   ├───Equity
│   │   └───11-May-2022
│   ├───Futures
│   │   └───11-May-2022
│   └───Index
│   │   └───11-May-2022
├───BankNifty
│   ├───Futures_Intraday_Snapshots
│   │   └───11-May-2022
│   ├───GraphsData
│   │   └───11-May-2022
│   └───Options_Intraday_Snapshots
│       └───11-May-2022
├───FinNifty
│   ├───Futures_Intraday_Snapshots
│   │   └───11-May-2022
│   ├───GraphsData
│   │   └───11-May-2022
│   └───Options_Intraday_Snapshots
│       └───11-May-2022
├───Misc
│   ├───Futures_Intraday_Snapshots
│   │   └───11-May-2022
│   ├───GraphsData
│   │   └───11-May-2022
│   └───Options_Intraday_Snapshots
│       └───11-May-2022
└───Nifty
    ├───Futures_Intraday_Snapshots
    │   └───11-May-2022
    ├───GraphsData
    │   └───11-May-2022
    └───Options_Intraday_Snapshots
        └───11-May-2022

WARNING: When upgrading, any files not downloaded by nse will be moved to the .old folder in the output directory

Configure

To Be Updated

Manage

To Be Updated

Delete

To Be Updated

Feature Requests

If you would like to make a feature request, check the issues to see if the feature has already been added or is planned. If not, create a new issue.

Building from Source or Working with nse

Firstly, you need the Rust toolchain which includes cargo, rustup, etc. You can install these from the Rust website. You'll also need the Just command runner, its basically a much better version of make.

If you want to build nse without cloning the repo then run cargo install nse.

To build the project and install it to your Cargo binary directory, clone the project and run just install. If you want to install it for testing a developement version, run just (alias for just install-dev).

If you want to obtain executables for a specific OS, you can run just build-<OS> and replace <OS> with mac, win, or linux. The produced binaries will be zipped and moved to out/.

You can run clippy linters using just lint, and integration tests using cargo test. Finally you can delete all the build and test artefacts by using just clean.

You might also like...
Option and Either types with variants known at compile time.

Const Either Some types to allow deciding at compile time if an option contains a value or which variant from the either type is active. This might be

This is a Telegram bot I'm working on in my free time to learn Rust.

Maldness Bot This is a Telegram bot I'm working on in my free time to learn Rust. Building docker build -t . should be enough.

Rust bindings for the KING OF TIME API

Rust bindings for the KING OF TIME API Example Prints if you are at work or not at work. $ cargo run --example tc -- status Record the time you start

Faster division by constants that aren't known at compile-time

Baseline implementation of division by constants When dividing integers by compile-time constants, compilers (LLVM) can be trusted to convert those to

This crate defines a single macro that is a brainfunct compile-time interpreter.

Compile Protection This crate defines a single macro that is a brainfunct compile-time interpreter. One example is as follows #![recursion_limit = "18

Allocate memory at compile time!

const-alloc Link to the docs! Allocate memory at compile time! Currently, in stable rust there is no way to dynamically allocate or deallocate memory

Building a better screen reader for the Linux desktop, one step at a time.

Building a better screen reader for the Linux desktop, one step at a time.

Compile-time lifetimes for comments.

todo_by Compile-time lifetimes for comments. To use this macro, add it to your dependencies via Cargo: cargo add todo_by Then, import and invoke the m

CLI tool that make it easier to perform multiple lighthouse runs towards a single target and output the result in a "plotable" format.

Lighthouse Groupie CLI tool that make it easier to perform multiple lighthouse runs towards a single target and output the result in a "plotable" form

Releases(v0.1.2)
A custom frontend for the TradeOgre exchange, written using Iced

Forest A custom frontend for the TradeOgre exchange, written using Iced. Why TradeOgre? It's a simple, non-KYC exchange that I found out about recentl

null 3 Aug 24, 2022
`fugit` provides a comprehensive library of `Duration` and `Instant` for the handling of time in embedded systems, doing all it can at compile time.

fugit fugit provides a comprehensive library of Duration and Instant for the handling of time in embedded systems, doing all it can at compile time. T

Emil Fresk 40 Oct 2, 2022
RusQTTbom takes weather data from the Bureau of Meteorology (BOM) and publishes that data via MQTT messages.

RusQTTbom RusQTTbom collects weather data from the Bureau of Meterology (BOM) then publishes said data locally via MQTT messages. BOM weather data is

Athenars 7 Jan 13, 2023
Uindex is a data store, for data that can be parsed as sentences in some context-free language.

Uindex - Universal index Uindex is a data store, for data that can be parsed as sentences in some context-free language.

Enrique Pérez Arnaud 3 Jul 20, 2021
A rust library for interacting with multiple Discord.com-compatible APIs and Gateways at the same time.

Chorus A rust library for interacting with (multiple) Spacebar-compatible APIs and Gateways (at the same time). Explore the docs » Report Bug · Reques

polyphony 4 Apr 30, 2023
Click-once - A small tiny little binary to fix undesired mouse double clicks in Windows, written in Rust.

click-once A small tiny little binary to fix malfunctioning mouse double clicks in Windows, written in Rust. Minimal executable with little to no over

null 23 Dec 29, 2022
Very simple Rust binary that can turn on/off a TP-Link L920 led light strip in your local network

TP-Link L920 on/off script This is a (very) simple Rust binary that can turn on/off a TP-Link L920 led light strip in your local network. Installation

Luciano Mammino 3 Aug 21, 2023
A zero-copy parser for the contents of the __unwind_info section of a mach-O binary.

A parser for Apple's Compact Unwinding Format, which is used in the __unwind_info section of mach-O binaries.

Markus Stange 10 May 31, 2022
An (unofficial) Rust library for querying db-ip.com data

db_ip An (unofficial) library for querying db-ip.com CSV databases in safe Rust. This library is not affiliated with or endorsed by db-ip.com. Be advi

Finn Bear 4 Dec 2, 2022
constduck: compile-time duck typing and reflection

constduck provides a procmacro that can enable compile time duck typing and reflection on arbitrary struct types.

ferrouille 15 Oct 12, 2022