Giter Club home page Giter Club logo

librr_rs's Introduction

Librr-rs

This project is devoted to building a programmatic Rust interface for the rr debugging framework. This project has two major pain points:

  • rr is built as an executable rather than as a library. This has lead to many design decisions that make it very painful to add a programmatic interface ontop of. If I am confident enough in my interface, I may eventually consider a PR to rr that stabilizes a C++ interface.
  • Rust and C++ interop is still in its infancy and this leads to very unexpected (and painful) behavior depending on where code is written and how things are built.

Current Status

At this point in time (and for many months to come), I strongly reccomend against using this library as it is subject to radical API changes while I figure things out. If you have a use case you want me to consider, please message me or submit a PR outlining your use case.

Known Future API Changes

  • Some functions return T when they should return Result<T,E>
  • Cxx currently does not support the Option<T> return type. Once it does, some functions should return an option instead of an error code
  • Some functions crash due to C++ assert!() statements when they should return errors.
  • This whole thing needs to be refactored into a main package and a *-sys package to adhere to rust naming standards

librr_rs's People

Contributors

zaporter avatar

Stargazers

 avatar Jack Sullivan avatar

Watchers

 avatar  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.