A GSL (the GNU Scientific Library) binding for Rust

Overview

rust-GSL

A Rust binding for the GSL library (the GNU Scientific Library).

The minimum support Rust version is 1.54.

Installation

This binding requires the GSL library library (version >= 2) to be installed:

Linux

# on debian based systems:
sudo apt-get install libgsl0-dev

macOS

brew install gsl

Apple silicon

Homebrew installs libraries under /opt/homebrew/include on Apple silicon to maintain backward compatibility with Rosetta 2.

After gsl has been installed in the usual way, use the environment variable:

RUSTFLAGS='-L /opt/homebrew/include'

before cargo run, cargo build, etc., to tell the compiler where gsl is located.

Windows

Instructions are available there: https://www.gnu.org/software/gsl/extras/native_win_builds.html.

Usage

This crate works with Cargo and is on crates.io. Just add the following to your Cargo.toml file:

[dependencies]
GSL = "4.0"

You can see examples in the examples folder.

Building

To build rgsl, just run cargo build. However, if you want to use a specific version, you'll need to use the cargo features. For example:

cargo build --features v2_1

If a project depends on this version, don't forget to add in your Cargo.toml:

[dependencies.GSL]
version = "2"
features = ["v2_1"]

Documentation

You can access the rgsl documentation locally, just build it:

> cargo doc --open

Then open this file with an internet browser: file:///{rgsl_location}/target/doc/rgsl/index.html

You can also access the latest build of the documentation via the internet here.

License

rust-GSL is a wrapper for GSL, therefore inherits the GPL license.

Comments
  • Error linking rust-GSL 0.4.26

    Error linking rust-GSL 0.4.26

    Error linking simple program (https://github.com/ruivieira/scrapyard/tree/master/gibbs) using the GSL crate.

    Command: cargo build

    Output:

       Compiling libc v0.2.10
       Compiling num-traits v0.1.32
       Compiling rustc-serialize v0.3.19
       Compiling c_vec v1.0.12
       Compiling rand v0.3.14
       Compiling num-integer v0.1.32
       Compiling num-iter v0.1.32
       Compiling num-bigint v0.1.32
       Compiling num-complex v0.1.32
       Compiling num-rational v0.1.32
       Compiling num v0.1.32
       Compiling GSL v0.4.26
    error: linking with `cc` failed: exit code: 1
    
    ...
    
     = note: Undefined symbols for architecture x86_64:
                "_gsl_sf_legendre_array_size", referenced from:
                    rgsl::legendre::associated_polynomials::legendre_array_size::had397dab94a5cec9 in rgsl-d0fa51373d34118d.0.o
                "_gsl_sf_legendre_sphPlm_deriv_array", referenced from:
                    rgsl::legendre::associated_polynomials::legendre_sphPlm_deriv_array::h4437735f828f055a in rgsl-d0fa51373d34118d.0.o
                "_gsl_sf_legendre_sphPlm_array", referenced from:
                    rgsl::legendre::associated_polynomials::legendre_sphPlm_array::h995ab4ea64235b3d in rgsl-d0fa51373d34118d.0.o
                "_gsl_bspline_deriv_alloc", referenced from:
                    rgsl::types::basis_spline::BSpLineDerivWorkspace::new::h6a0ffaf3b90ac39d in rgsl-d0fa51373d34118d.0.o
                "_gsl_bspline_deriv_free", referenced from:
                    _$LT$rgsl..types..basis_spline..BSpLineDerivWorkspace$u20$as$u20$core..ops..Drop$GT$::drop::hbe616f29eb6a5bd0 in rgsl-d0fa51373d34118d.0.o
                "_gsl_sf_legendre_Plm_array", referenced from:
                    rgsl::legendre::associated_polynomials::legendre_Plm_array::he622b32a4276b391 in rgsl-d0fa51373d34118d.0.o
                "_gsl_sf_legendre_Plm_deriv_array", referenced from:
                    rgsl::legendre::associated_polynomials::legendre_Plm_deriv_array::hb3cebea101722fd0 in rgsl-d0fa51373d34118d.0.o
              ld: symbol(s) not found for architecture x86_64
              clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    rustc --version: rustc 1.19.0 (0ade33941 2017-07-17) cargo --version: cargo 0.20.0 (a60d185c8 2017-07-13)

    opened by ruivieira 9
  • Rustify examples and resolve Cargo issues

    Rustify examples and resolve Cargo issues

    Hi,

    One more pull request:

    • Move examples so that they match Cargo's standard layout. Now they can be run using cargo run --example name. They are also automatically build when running cargo test.
    • Fix some issues when running cargo test: comments were misinterpreted as doc tests.
    • Remove Makefile: I found out that Makefile simply does not seem work anymore (issues resolving external crates), so I removed it since all is now handled in a standard way by Cargo. I think this reduces confusion.
    • Add cargo test to .travis.yml to build examples and in general run the test suite (once there is one).
    • Update README.md: Cargo and crates.io are the way to use this library.
    • (Bunch of trailing whitespace removed--my editor removes it by default.)

    Please feel free to disregard this pull request if you do not approve of the changes. I simply like your project and I think it'd be great if it were up to date with the current version of Cargo.

    opened by rekka 8
  • Mathieu functions always return zero

    Mathieu functions always return zero

    The Mathieu functions provided in types::mathieu::MathieuWorkspace always return zero. Example:

    use rgsl::types::mathieu::MathieuWorkspace;
    use rgsl::Value;
    
    fn main() {
        const Q: f64 = 0.8253525490491695;
        let foo = match MathieuWorkspace::mathieu_Mc(1, 0, Q, 0.5) {
            (Value::Success, res) => res.val,
            _ => panic!("Mathieu function failed"),
        };
        println!("{}", foo);
    }
    

    Output: 0. This seems to happen for any input.

    By contrast, for a roughly equivalent C program:

    #include <stdio.h>
    #include "gsl/gsl_sf_mathieu.h"
    
    
    int main() {
        double q = 0.8253525490491695;
        gsl_sf_result res;
        gsl_sf_mathieu_Mc_e(1, 0, q, 0.5, &res);
        printf("%f", res.val);
    }
    

    I get 0.666843.

    opened by Jvanrhijn 7
  • Project should be split into GSL versions to avoid linker errors

    Project should be split into GSL versions to avoid linker errors

    Currently if the project is built against the current GSL then it causes linker errors from deprecated functions. This makes the project very hard to use. Can we split it into a version scheme that matches GSL versions? Then make it so that the user should use that version. I would suggest for 1.6 or other GSL versions the code should be branched and then for the current 2.4 it should be branched as well. Then the user can chose the GSL version that fits their system. I would be happy to help.

    opened by ghost 7
  • How to install dependency on Mac?

    How to install dependency on Mac?

    I've installed gsl, but looks like it wasn't enough:

    >$ brew install gsl
    ==> Downloading https://homebrew.bintray.com/bottles/gsl-2.2.1.sierra.bottle.tar.gz
    ######################################################################## 100.0%
    ==> Pouring gsl-2.2.1.sierra.bottle.tar.gz
    🍺  /usr/local/Cellar/gsl/2.2.1: 272 files, 8.6M
    

    Here's the error when I try to build:

    >$ cargo build
       Compiling GSL v0.4.28
    error: linking with `cc` failed: exit code: 1
      |
      = note: "cc" "-m64" "-L" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib" "/Users/franciswang/test/target/debug/deps/rgsl-6e9ac6569d203bcd.0.o" "-o" "/Users/franciswang/test/target/debug/deps/librgsl-6e9ac6569d203bcd.dylib" "/Users/franciswang/test/target/debug/deps/rgsl-6e9ac6569d203bcd.metadata.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/franciswang/test/target/debug/deps" "-L" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib" "-l" "gsl" "-l" "gslcblas" "-Wl,-force_load,/var/folders/x_/c899j8zj1p9617nktzy_55k00000gp/T/rustc.l05wzdpO5EaY/liblibc-6ec63c5a0e74a074.rlib" "-L" "/Users/franciswang/test/target/debug/deps" "-l" "c_vec-404a8700dec5f2e1" "-L" "/usr/local/lib/rustlib/x86_64-apple-darwin/lib" "-l" "std-a4729905" "/var/folders/x_/c899j8zj1p9617nktzy_55k00000gp/T/rustc.l05wzdpO5EaY/libcompiler_builtins-a4729905.rlib" "-l" "System" "-l" "pthread" "-l" "c" "-l" "m" "-dynamiclib" "-Wl,-dylib"
      = note: Undefined symbols for architecture x86_64:
      "_gsl_sf_legendre_array_size", referenced from:
          rgsl::legendre::associated_polynomials::legendre_array_size::hba1a0292657ad723 in rgsl-6e9ac6569d203bcd.0.o
      "_gsl_sf_legendre_sphPlm_deriv_array", referenced from:
          rgsl::legendre::associated_polynomials::legendre_sphPlm_deriv_array::h5e62b502224dfcf2 in rgsl-6e9ac6569d203bcd.0.o
      "_gsl_sf_legendre_sphPlm_array", referenced from:
          rgsl::legendre::associated_polynomials::legendre_sphPlm_array::hca6ca3693272788e in rgsl-6e9ac6569d203bcd.0.o
      "_gsl_bspline_deriv_alloc", referenced from:
          rgsl::types::basis_spline::BSpLineDerivWorkspace::new::h15a8433a124eadb4 in rgsl-6e9ac6569d203bcd.0.o
      "_gsl_bspline_deriv_free", referenced from:
          _$LT$rgsl..types..basis_spline..BSpLineDerivWorkspace$u20$as$u20$core..ops..Drop$GT$::drop::he88b99acc9916c98 in rgsl-6e9ac6569d203bcd.0.o
      "_gsl_sf_legendre_Plm_array", referenced from:
          rgsl::legendre::associated_polynomials::legendre_Plm_array::h61d8ad280cb37285 in rgsl-6e9ac6569d203bcd.0.o
      "_gsl_sf_legendre_Plm_deriv_array", referenced from:
          rgsl::legendre::associated_polynomials::legendre_Plm_deriv_array::hb8b0d48c1dd07921 in rgsl-6e9ac6569d203bcd.0.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    
    
    error: aborting due to previous error
    
    error: Could not compile `GSL`.
    
    To learn more, run the command again with --verbose.
    
    opened by go717franciswang 7
  • Multiroot bindings

    Multiroot bindings

    Added bindings for multiroot solvers.

    • this required an update to regen.rs which caused subsequent changes to auto.rs. I used rust 1.54 + GSL v2.7 release.
    • the current auto.rs file required updates to matrix.rs and vector.rs due to mismatched type errors. You noted that there was a bug there previously w/ inconsistent types. It doesn't appear to be there at the moment.
    opened by catompkins 6
  • Shared/Unique FFI unwrap

    Shared/Unique FFI unwrap

    Split 'unwrap' method of FFI trait into shared (returns *const _) / owned (returns *mut _) methods, instead of just one method returning *mut _.

    This allows applying ownership & mutability rules consistently across all the FFI bindings as long as the C definitions are correct (*const/*mut pointers where appropriate).

    Will allow for implementation of unsafe sync/senc traits for certain types (like matrix) or use of smart pointers like Rc/RefCell etc.

    opened by iduartgomez 6
  • bad link on crates.io

    bad link on crates.io

    On crate.io the link to the latest build info ("You can also access the latest build of the documentation via the internet here.") is currently going to some celebrity news site: http://rust-ci.org/GuillaumeGomez/rust-GSL/doc/rgsl/

    opened by bburdette 5
  • now can 'set_params' and 'get_params' from MC Vegas

    now can 'set_params' and 'get_params' from MC Vegas

    added a way to get and set parameters (which was not implemented yet) for Monte Carlo integration with Vegas algorithm

    in order to do this added a safe wrapper to write to FILE streams in C (required by the methods), which could be handful in case it's needed for other methods

    opened by iduartgomez 5
  • enum 'EigenSort' is private

    enum 'EigenSort' is private

    I am using the symmv_sort function to sort Eigenvalues + Eigenvectors, however I get an error saying that the EigenSort enum is private.

    Looking at the source code on Github it's not private?

    Also, the documentation page lists the enum under "rgsl::enums::EigenSort" but it's at "rgsl::enums::eigen_sort::EigenSort"?

    opened by aalsuwaidi 5
  • changes to make it build on windows for gsl-1.16

    changes to make it build on windows for gsl-1.16

    Some changes to make it build on Win64

    This one will remove some function.

    I do not know if it is a good idea to use casting on type on rng.rs. You can check it.

    opened by qinwf 5
  • Feature request: add static linking option

    Feature request: add static linking option

    It would be nice if the crate supports static linking with the GSL via a Cargo feature flag. The most of scientific crates with bindings provide such an option, e.g. ndarray-linalg, fftw, netcdf and hdf5

    opened by hombit 6
  • math in doc

    math in doc

    It would be nicer if we can support math in the doc, as in here.

    Given there is a lot of math in the doc, I'm wonder how the docstring in this lib are created and if we can add $ symbols and escape some characters (e.g., []_) automatically.

    opened by roosephu 0
  • Incorrect ffi-binding to gsl_multifit_function_fdf

    Incorrect ffi-binding to gsl_multifit_function_fdf

    GSL header gsl_multifit_nlin.h specifies gsl_multifit_function_fdf as

    struct gsl_multifit_function_fdf_struct
    {
      int (* f) (const gsl_vector * x, void * params, gsl_vector * f);
      int (* df) (const gsl_vector * x, void * params, gsl_matrix * df);
      int (* fdf) (const gsl_vector * x, void * params, gsl_vector * f, gsl_matrix *df);
      size_t n;       /* number of functions */
      size_t p;       /* number of independent variables */
      void * params;  /* user parameters */
      size_t nevalf;  /* number of function evaluations */
      size_t nevaldf; /* number of Jacobian evaluations */
    };
    
    typedef struct gsl_multifit_function_fdf_struct gsl_multifit_function_fdf ;
    

    but Rust ffi binding misses last two fields: https://github.com/GuillaumeGomez/rust-GSL/blob/b06c6732fd1155825141b28844f764cb396907dc/src/ffi/solvers.rs#L150-L168

    I noticed this when saw undefined behaviour of my Rust code: some of my variables are changed by MultiFitFSolver::set(), but I didn't passed them there. Probably it also can cause problems described by #67

    opened by hombit 3
  • Unresolved external symbol

    Unresolved external symbol

    I'm trying to add support for vcpkg as I've found out, that I need to link to this with stable-msvc.

    I'm beyond frustrated at this point, but here's where I am at: The build.rs I have right now is this:

    extern crate vcpkg;
    use std::path::PathBuf;
    
    fn main() {
        std::env::set_var("VCPKGRS_DYNAMIC", "");
        std::env::set_var("RUSTFLAGS", "-Ctarget-feature=+crt-static");
        let gsl_library = vcpkg::Config::new()
            .cargo_metadata(true)
            .emit_includes(true)
            // .copy_dlls(true)
            // .vcpkg_root(PathBuf::from("C:/DEV/vcpkg/"))
            .find_package("gsl")
            .unwrap();
        dbg!(gsl_library);
        println!(r#"cargo:rustc-cfg=feature="v2""#);
    }
    

    I've also added default = ["v2"] to Cargo.toml to ensure that it is building the version of gsl that I installed through vcpkg.

    The vcpkg crate works like this: If all this was resolved correlty, then the necessary things are emitted.

    But I still get all of these as unresolved symbols: They aren't strictly v2 stuff, so I am just very perplexed as to why I'm missing 79 symbols:

    ``` gsl_odeiv2_step_rk2 gsl_odeiv2_step_rk4 gsl_odeiv2_step_rkf45 gsl_odeiv2_step_rkck gsl_odeiv2_step_rk8pd gsl_odeiv2_step_rk1imp gsl_odeiv2_step_rk2imp gsl_odeiv2_step_rk4imp gsl_odeiv2_step_bsimp gsl_odeiv2_step_msadams gsl_odeiv2_step_msbdf gsl_odeiv2_control_scaled gsl_odeiv2_control_standard gsl_interp_linear gsl_interp_polynomial gsl_interp_cspline gsl_interp_cspline_periodic gsl_interp_akima gsl_interp_akima_periodic gsl_rng_default_seed gsl_rng_default gsl_multifit_fdfsolver_lmder gsl_multifit_fdfsolver_lmsder gsl_qrng_niederreiter_2 gsl_qrng_sobol gsl_qrng_halton gsl_qrng_reversehalton gsl_rng_mt19937 gsl_rng_ranlxs0 gsl_rng_ranlxs1 gsl_rng_ranlxs2 gsl_rng_ranlxd1 gsl_rng_ranlxd2 gsl_rng_ranlux gsl_rng_ranlux389 gsl_rng_cmrg gsl_rng_mrg gsl_rng_taus gsl_rng_taus2 gsl_rng_gfsr4 gsl_rng_ranf gsl_rng_ranmar gsl_rng_r250 gsl_rng_tt800 gsl_rng_vax gsl_rng_transputer gsl_rng_randu gsl_rng_minstd gsl_rng_uni gsl_rng_uni32 gsl_rng_slatec gsl_rng_zuf gsl_rng_knuthran2 gsl_rng_knuthran2002 gsl_rng_knuthran gsl_rng_borosh13 gsl_rng_fishman18 gsl_rng_fishman20 gsl_rng_lecuyer21 gsl_rng_waterman14 gsl_rng_fishman2x gsl_rng_coveyou gsl_rng_rand gsl_rng_random_bsd gsl_rng_random_libc5 gsl_rng_random_glibc2 gsl_rng_rand48 gsl_root_fsolver_bisection gsl_root_fsolver_brent gsl_root_fsolver_falsepos gsl_root_fdfsolver_newton gsl_root_fdfsolver_secant gsl_root_fdfsolver_steffenson gsl_wavelet_daubechies gsl_wavelet_daubechies_centered gsl_wavelet_haar gsl_wavelet_haar_centered gsl_wavelet_bspline gsl_wavelet_bspline_centered ```
    opened by CGMossa 5
  • Linking to GSL is failing

    Linking to GSL is failing

    I've tried for hours now to successfully link GSL and my rust project.

    The error:

    error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
      |
      = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-nostdlib" "-m64" "C:\\msys64\\mingw64\\x86_64-w64-mingw32\\lib\\dllcrt2.o" "C:\\Users\\Tyler\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-L" "C:\\msys64\\mingw64\\x86_64-w64-mingw32\\lib" "-L" "C:\\Users\\Tyler\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.0.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.1.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.10.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.11.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.12.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.13.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.14.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.15.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.2.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.3.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.4.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.5.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.6.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.7.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.8.rcgu.o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.rgsl.2rvoy63y-cgu.9.rcgu.o" "-o" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.dll" "-Wl,--version-script=C:\\Users\\Tyler\\AppData\\Local\\Temp\\rustclFfSRB\\list" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.4ehqnvh7q6k2v6s7.rcgu.o" "-nodefaultlibs" "-L" "C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps" "-L" "/mingw64/lib" "-L" "C:\\Users\\Tyler\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-lgsl" "-lgslcblas" "-lm" "-L" "C:\\Users\\Tyler\\Documents\\GitHub\\rust_asf\\target\\debug\\deps" "-lc_vec-75e7b74152ad26ab" "-Wl,-Bstatic" "-Wl,--whole-archive" "C:\\Users\\Tyler\\AppData\\Local\\Temp\\rustclFfSRB\\liblibc-b1f278e3ea3e8abf.rlib" "-Wl,--no-whole-archive" "-Wl,--start-group" "-L" "C:\\Users\\Tyler\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bdynamic" "-lstd-492039e7b59897c1" "-Wl,--end-group" "-Wl,-Bstatic" "C:\\Users\\Tyler\\AppData\\Local\\Temp\\rustclFfSRB\\libcompiler_builtins-cf2c747a9d7d25a8.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-lws2_32" "-luserenv" "-shared" "-Wl,--out-implib,C:\\Users\\Tyler\\Documents\\Github\\rust_asf\\target\\debug\\deps\\rgsl-d2020b8b123b005d.dll.lib" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-lmsvcrt" "-luser32" "-lkernel32" "C:\\Users\\Tyler\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
      = note: ld: cannot find -lgsl
              ld: cannot find -lgslcblas
    

    Platform: Windows 10. Rust 1.42 and rust is set to stable-gnu. I've installed Msys, and followed

    cd gsl/
    ./configure --enable-maintainer-mode
    make
    make install
    
    opened by CGMossa 7
Owner
Guillaume Gomez
Opensource lover. Rustdoc team leader, member of the Rust dev-tools, documentation and docs.rs teams, GNOME foundation member.
Guillaume Gomez
Command Line Scientific Calculator. Free Forever. Made with ❤️ using 🦀

██████╗███████╗ ██████╗ ██╔════╝██╔════╝██╔════╝ ██║ ███████╗██║ ██║ ╚════██║██║ ╚██████╗███████║╚██████╗ ╚═════╝╚══════╝ ╚═════╝ -

zahash 17 Oct 28, 2023
Cross-platform Rust rewrite of the GNU coreutils

Cross-platform Rust rewrite of the GNU coreutils

null 13k Jan 8, 2023
A collection of semi-useful tools made for GNU/Linux

DECTOOLS A collection of semi-useful tools made for GNU/Linux. Some may work on macOS, though functionality isn't a priority. Depenencies: python, bas

Decator 3 Jun 8, 2022
Apple dynamic HEIF wallpapers on GNU/Linux.

timewall Apple dynamic HEIF wallpapers on GNU/Linux. Features: Support for original HEIF/HEIC dynamic wallpaper files used in MacOS. Support for all s

Bazyli Cyran 15 Dec 15, 2022
An implementation of a Windows Event Collector server running on GNU/Linux.

OpenWEC OpenWEC is a free and open source (GPLv3) implementation of a Windows Event Collector server running on GNU/Linux and written in Rust. OpenWEC

CEA IT Security 15 Jun 15, 2023
Rust Imaging Library's Python binding: A performant and high-level image processing library for Python written in Rust

ril-py Rust Imaging Library for Python: Python bindings for ril, a performant and high-level image processing library written in Rust. What's this? Th

Cryptex 13 Dec 6, 2022
Fast & Memory Efficient NodeJs Excel Writer using Rust Binding

FastExcel This project need Rust to be installed, check here for Rust installation instruction This project using Rust and Neon as a binding to Rust t

Aditya Kresna 2 Dec 15, 2022
The high-speed IAPWS-IF97 package in Rust with C and Python binding

SEUIF97 This is the Rust implementation of the high-speed IAPWS-IF97 package seuif97 with C and Python binding. It is suitable for computation-intensi

Cheng Maohua 5 Aug 12, 2023
.NET PhysX 5 binding to all platforms(win, osx, linux) for 3D engine, deep learning, dedicated server of gaming.

MagicPhysX .NET PhysX 5 binding to all platforms(win-x64, osx-x64, osx-arm64, linux-x64, linux-arm64) for 3D engine, deep learning, dedicated server o

Cysharp, Inc. 37 Jul 4, 2023
Node.js tar binding

@napi-rs/tar Node.js tar binding https://docs.rs/tar/latest/tar/ Usage export class Entries { [Symbol.iterator](): Iterator<Entry, void, void> } exp

Node-API (N-API) for Rust 5 Dec 18, 2023
This library provides a convenient derive macro for the standard library's std::error::Error trait.

derive(Error) This library provides a convenient derive macro for the standard library's std::error::Error trait. [dependencies] therror = "1.0" Compi

Sebastian Thiel 5 Oct 23, 2023
A readline-like library in Rust.

liner A Rust library offering readline-like functionality. CONTRIBUTING.md Featues Autosuggestions Emacs and Vi keybindings Multi-line editing History

Liam 70 Jun 19, 2022
a Rust library for running child processes

duct.rs Duct is a library for running child processes. Duct makes it easy to build pipelines and redirect IO like a shell. At the same time, Duct help

Jack O'Connor 633 Dec 30, 2022
A command line progress reporting library for Rust

indicatif Documentation A Rust library for indicating progress in command line applications to users. This currently primarily provides progress bars

Armin Ronacher 3.2k Dec 30, 2022
Low-level Rust library for implementing terminal command line interface, like in embedded systems.

Terminal CLI Need to build an interactive command prompt, with commands, properties and with full autocomplete? This is for you. Example, output only

HashMismatch 47 Nov 25, 2022
Rust library for ANSI terminal colours and styles (bold, underline)

rust-ansi-term This is a library for controlling colours and formatting, such as red bold text or blue underlined text, on ANSI terminals. View the Ru

Benjamin Sago 407 Jan 2, 2023
Cross-platform Rust library for coloring and formatting terminal output

Coloring terminal output Documentation term-painter is a cross-platform (i.e. also non-ANSI terminals) Rust library for coloring and formatting termin

Lukas Kalbertodt 75 Jul 28, 2022
A dead simple ANSI terminal color painting library for Rust.

yansi A dead simple ANSI terminal color painting library for Rust. use yansi::Paint; print!("{} light, {} light!", Paint::green("Green"), Paint::red(

Sergio Benitez 169 Dec 25, 2022
Cross platform terminal library rust

Cross-platform Terminal Manipulation Library Crossterm is a pure-rust, terminal manipulation library that makes it possible to write cross-platform te

crossterm-rs 2.1k Jan 2, 2023