Giter VIP home page Giter VIP logo

lxi-rs's Introduction

lxi-rs

This crate aims to simplify implementation of the LXI Device Specification. The specifications consists of a core specification and a optional set of extended functions.

Currently the focus is on implementing HiSLIP/VXI-11/Socket protocols for Unix-like environments. A long-term goal is to support an async no-std environment like

Relevant standards:

Scope

This crate does not handle command parsing and/or execution, look at scpi-rs(:crab:) or libscpi(C) for that.

Examples

Each protocol includes an example service, you can try them out with cargo run --example <protocol> where protocol is either hislip,vxi11,raw, or telnet. Run cargo run --example <protocol> -- --help for help and specific arguments for each protocol.

Testing

This crate uses two types of tests, the cargo test framework and pytest. Cargo test is mostly used for unit-testing while pytest is integration tests against pyvisa.

  1. Install python requirements: pip install -r requirements.txt
  2. [Optional but required to test HiSLIP] Install NI-VISA for Linux, see pyvisa guide here
  3. Run tests: cargo test && pytest

Coverage

  1. Install cargo-llvm-cov and testing dependencies above.
  2. Run ./coverage --open

Licensing

Lxi-rs is available under GPLv3 License, see LICENSE-GPL.

Core crates like lxi-device are licensed under MIT and APACHE version 2.

lxi-rs's People

Contributors

atmelfan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

lxi-rs's Issues

Async device API

Currently lxi-device is sync-only. While it should be good enough for most devices it is a problem for bridges and inconvenient a lot of the time.

Decide license

Core crates like lxi-device and lxi-socket are licensed copy-left (MIT and Apache).

Other crates are as of yet undecided. Some options:

  • GPLv3 (or later)
    Infects my other software if I choose to accept any pull requests
  • GPLv3 (or later) and Commercial
    Pull request authors must sub-license their contribution as copy-left and possibly sign something?
  • LGPLv3 (or later)
    Reciprocal, does not infect my own software
  • MIT/Apache
    Most permissive

LXI API extended function

Implement the lxi-api extended function as described in LXI API Extended function.

Todo:

  • Move lxi-api to its own branch (so that MVP webserver can be merged into main)
  • Implement LXI-API for network config without certificate management (part of LXI Security extended function)

HiSLIP Secure capability

Hislip does not support secure-capability

  • TLS encryption
    • StartTLS / AsyncStartTLS
    • EndTLS / AsyncEndTLS, not sure how to accomplish with async-tls
  • SASL authentication

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.