C API to SpringQL (for embedded mode)

Overview

SpringQL C Client

This repository is a C client for SpringQL and provides it provides:

  • springql.h: C header file.
  • libspringql_client.{so,dylib}: Shared library.

You can link your application with the shared library and run SpringQL in embedded mode.

Getting Started

APIs

Take a short look to springql.h, which declares all of C APIs and types to use from your application.

Installation

All you need to do are:

  • Download latest header file and shared library from release page.
  • Put springql.h to somewhere where your compiler recognize as an include path.
  • Put libspringql_client.{so,dylib} to somewhere where your compiler recognize as a library path (one in $LD_LIBRARY_PATH is a good option).

Example application

See c_example/ for how to write and build a SpringQL embedded application.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in SpringQL by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Copyright (c) 2021 TOYOTA MOTOR CORPORATION.

Comments
  • build(deps): update springql-core requirement from 0.9.0 to 0.10.0

    build(deps): update springql-core requirement from 0.9.0 to 0.10.0

    Updates the requirements on springql-core to permit the latest version.

    Changelog

    Sourced from springql-core's changelog.

    [v0.10.0]

    Added

    • docs: add code example to crate document(#156)

    For Developers

    • Refactor : crate/module document move to pure Markdown (#136)
    • add cargo-make task for runs actionlint

    [v0.9.0]

    Added

    • Non-blocking pop feature from in-memory queues both in high-level and low-level APIs (#134).
      • High-level: SpringPipelineHL::pop_non_blocking()
      • Low-level: spring_pop_non_blocking()
    • Warning doc comments to SpringPipelineHL::pop() and spring_pop() to prevent being used with threads (#134).

    [v0.8.0]

    Added

    • Create multiple pumps from a source stream (splitting pipeline from a source stream) (#133).

    [v0.7.1]

    Fixed

    • Aggregation without GROUP BY clause (#129).
    • Panic on multiple GROUP BY elements (#129).
    • Fields order in SELECT was ignored in aggregation query (#128).

    [v0.7.0]

    Added

    • Low-level APIs (#121).
      • spring_column_bool
      • spring_column_f32
      • spring_column_i16
      • spring_column_i64

    [v0.6.0]

    Added

    • SpringPipelineHL::pop() to get SpringRowHL from an in-memory queue (#119).
    • SpringRowHL::get_not_null_by_index() to get a column value from SpringRowHL (#119).

    ... (truncated)

    Commits
    • c012059 Release 0.10.0
    • 676f4bd docs: update CHANGELOG
    • e1d63b7 Merge pull request #156 from SpringQL/add_code_example_to_docs
    • 5a24bd2 add changelog
    • 7d273ab add copy of examples to lib.md
    • 8b2cbf8 Merge pull request #150 from SpringQL/lint_github_actions
    • 9eb696a apply review
    • 7660710 Merge pull request #154 from SpringQL/docs/CHANGELOG-format-for-developers
    • cbd8cac docs: adds ### For developers section in CHANGELOG
    • c49bdcd Merge pull request #142 from SpringQL/kazuk/issue138
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): update cbindgen requirement from 0.21 to 0.22

    build(deps): update cbindgen requirement from 0.21 to 0.22

    Updates the requirements on cbindgen to permit the latest version.

    Release notes

    Sourced from cbindgen's releases.

    v0.22.0

    • Support rename rule for union body members (#751).
    • constant: Add support for associated constant expressions (#752).
    • Fix regression in CamelCase rename rule (should be lowerCamelCase) (#750).
    • enumeration: simplify standard types in variants (#749).
    • Avoid generating and writing bindings when called recursively (#747).
    • Cython: Omit per-variant tags in unions generated for Rust enums (#748).
    • Update various dependencies.
    Changelog

    Sourced from cbindgen's changelog.

    0.22.0

      * Support rename rule for union body members ([#751](https://github.com/eqrion/cbindgen/issues/751)).
      * constant: Add support for associated constant expressions ([#752](https://github.com/eqrion/cbindgen/issues/752)).
      * Fix regression in CamelCase rename rule (should be lowerCamelCase) ([#750](https://github.com/eqrion/cbindgen/issues/750)).
      * enumeration: simplify standard types in variants ([#749](https://github.com/eqrion/cbindgen/issues/749)).
      * Avoid generating and writing bindings when called recursively ([#747](https://github.com/eqrion/cbindgen/issues/747)).
      * Cython: Omit per-variant tags in unions generated for Rust enums ([#748](https://github.com/eqrion/cbindgen/issues/748)).
      * Update various dependencies.
    

    0.21.0

      * Update MSRV to 1.54.0
      * Update clap to 3.1.
      * Update heck to 0.4.0
      * unraw identifiers
      * Honor documentation_length in Cython.
      * Add documentation_style to with short and full options
      * Map RawFd to Int
      * Respect remove_underscores config when prefixing name to enum
    

    0.20.0

     * Add Builder::with_using_namespaces. ([#688](https://github.com/eqrion/cbindgen/issues/688))
     * Ignore PhantomPinned. ([#695](https://github.com/eqrion/cbindgen/issues/695))
     * Simplify Pin<T> to T. ([#697](https://github.com/eqrion/cbindgen/issues/697))
     * Update --pretty=expanded to -Zunpretty=expanded. ([#706](https://github.com/eqrion/cbindgen/issues/706))
    

    0.19.0

     * Simplify types in generics ([#663](https://github.com/eqrion/cbindgen/issues/663))
     * Use --profile=check for macro expansion ([#671](https://github.com/eqrion/cbindgen/issues/671))
     * Use exported name to prefix enum variants ([#672](https://github.com/eqrion/cbindgen/issues/672))
     * Fix path attribute handling in inline submodules ([#679](https://github.com/eqrion/cbindgen/issues/679))
     * Fix a stack overflow with some recursive typedefs ([#680](https://github.com/eqrion/cbindgen/issues/680))
    

    0.18.0

     * Simplify types in nested types such as pointed-to types and function signatures ([#661](https://github.com/eqrion/cbindgen/issues/661))
    

    0.17.0

     * Add with_parse_extra_bindings to builder. ([#645](https://github.com/eqrion/cbindgen/issues/645))
     * Support NonZero and fix incorrect simplification of Option<ptr> into ptr. ([#647](https://github.com/eqrion/cbindgen/issues/647))
     * Deal with name conflicts correctly in declaration type resolution. ([#651](https://github.com/eqrion/cbindgen/issues/651))
     * Support pointers to ZSTs. ([#656](https://github.com/eqrion/cbindgen/issues/656))
    

    0.16.0

     * Remove artificial restriction on lifetime parameters on enums ([#604](https://github.com/eqrion/cbindgen/issues/604))
    

    ... (truncated)

    Commits
    • 8604b2c v0.22.0
    • 5b418d9 Support rename rule for union body members.
    • 770f352 constant: Add support for other expressions WebRender uses.
    • 882af0b constant: Add support for associated constant expressions.
    • 20ddfff Fix regression in CamelCase rename rule (should be lowerCamelCase)
    • 0928410 enumeration: simplify standard types in variants.
    • aeb8193 Avoid generating and writing bindings when called recursively
    • ca7a942 Cython: Omit per-variant tags in unions generated for Rust enums
    • 522759e Update various dependencies.
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): update cbindgen requirement from 0.20 to 0.21

    build(deps): update cbindgen requirement from 0.20 to 0.21

    Updates the requirements on cbindgen to permit the latest version.

    Release notes

    Sourced from cbindgen's releases.

    v0.21.0

    • Update MSRV to 1.54.0
    • Update clap to 3.1.
    • Update heck to 0.4.0
    • unraw identifiers
    • Honor documentation_length in Cython.
    • Add documentation_style to with short and full options
    • Map RawFd to Int
    • Respect remove_underscores config when prefixing name to enum
    Changelog

    Sourced from cbindgen's changelog.

    0.21.0

      * Update MSRV to 1.54.0
      * Update clap to 3.1.
      * Update heck to 0.4.0
      * unraw identifiers
      * Honor documentation_length in Cython.
      * Add documentation_style to with short and full options
      * Map RawFd to Int
      * Respect remove_underscores config when prefixing name to enum
    

    0.20.0

     * Add Builder::with_using_namespaces. ([#688](https://github.com/eqrion/cbindgen/issues/688))
     * Ignore PhantomPinned. ([#695](https://github.com/eqrion/cbindgen/issues/695))
     * Simplify Pin<T> to T. ([#697](https://github.com/eqrion/cbindgen/issues/697))
     * Update --pretty=expanded to -Zunpretty=expanded. ([#706](https://github.com/eqrion/cbindgen/issues/706))
    

    0.19.0

     * Simplify types in generics ([#663](https://github.com/eqrion/cbindgen/issues/663))
     * Use --profile=check for macro expansion ([#671](https://github.com/eqrion/cbindgen/issues/671))
     * Use exported name to prefix enum variants ([#672](https://github.com/eqrion/cbindgen/issues/672))
     * Fix path attribute handling in inline submodules ([#679](https://github.com/eqrion/cbindgen/issues/679))
     * Fix a stack overflow with some recursive typedefs ([#680](https://github.com/eqrion/cbindgen/issues/680))
    

    0.18.0

     * Simplify types in nested types such as pointed-to types and function signatures ([#661](https://github.com/eqrion/cbindgen/issues/661))
    

    0.17.0

     * Add with_parse_extra_bindings to builder. ([#645](https://github.com/eqrion/cbindgen/issues/645))
     * Support NonZero and fix incorrect simplification of Option<ptr> into ptr. ([#647](https://github.com/eqrion/cbindgen/issues/647))
     * Deal with name conflicts correctly in declaration type resolution. ([#651](https://github.com/eqrion/cbindgen/issues/651))
     * Support pointers to ZSTs. ([#656](https://github.com/eqrion/cbindgen/issues/656))
    

    0.16.0

     * Remove artificial restriction on lifetime parameters on enums ([#604](https://github.com/eqrion/cbindgen/issues/604))
     * Add an option for converting usize/isize into size_t/ptrdiff_t. ([#606](https://github.com/eqrion/cbindgen/issues/606))
     * Allow controlling the cargo profile used for expansion. ([#607](https://github.com/eqrion/cbindgen/issues/607))
     * Support wider range of expressions in enum discriminants ([#614](https://github.com/eqrion/cbindgen/issues/614))
     * Support generation of Cython bindings ([#590](https://github.com/eqrion/cbindgen/issues/590))
     * Fixed some issues with style=tag and recursive structs ([#615](https://github.com/eqrion/cbindgen/issues/615))
     * Default C style to Both (as specified in docs) ([#615](https://github.com/eqrion/cbindgen/issues/615))
     * Fix resolution of path dependencies from certain modules. ([#629](https://github.com/eqrion/cbindgen/issues/629))
     * Support inlined definitions for tuple variants with a single field in C ([#631](https://github.com/eqrion/cbindgen/issues/631))
    

    Thanks to all the awesome contributors that contributed to this release.

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): update springql-core requirement from 0.1.1 to 0.3.0

    build(deps): update springql-core requirement from 0.1.1 to 0.3.0

    Updates the requirements on springql-core to permit the latest version.

    Changelog

    Sourced from springql-core's changelog.

    v0.3.0

    Changed

    • spring_open() and SpringPipelineHL::new() are changed to take SpringConfig's reference instead of owned value.

    v0.2.0

    Added

    • Features to comply memory upper limit presented in the paper "Memory Efficient and Flexible Stream Processor for In-Vehicle Computers and IoT Devises".
    • Window JOIN (LEFT OUTER).
    • Window aggregation with grouping.
    • Types:
      • FLOAT
      • BOOLEAN
    • Out-of-order event-time processing.
    • Windows:
      • Time-based fixed-window
      • Time-based sliding-window
    • Rust high-level APIs.

    v0.1.1 - 2021-12-07

    Changed

    • Changed sleep time

    v0.1.0 - 2021-12-07

    Added

    • Initial release

    Commits
    • f84001b Release 0.3.0
    • dece243 Merge pull request #57 from SpringQL/feat/spring_open-takes-reference
    • 6524edc docs: update CHANGELOG
    • 4b8b121 feat: take reference instead of owned value for spring_open() to make C API m...
    • 6d908b0 Merge pull request #54 from SpringQL/docs/fix-demo-procedure
    • 248d1da docs: fix demo commands
    • fc5d236 docs: fix tag names
    • ecb6ff1 Release 0.2.0
    • 31bd97c Merge pull request #53 from SpringQL/docs/CHANGELOG
    • 026abec docs: adds CHANGELOG
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): update springql-core requirement from 0.1.1 to 0.2.0

    build(deps): update springql-core requirement from 0.1.1 to 0.2.0

    Updates the requirements on springql-core to permit the latest version.

    Changelog

    Sourced from springql-core's changelog.

    v0.2.0

    Added

    • Features to comply memory upper limit presented in the paper "Memory Efficient and Flexible Stream Processor for In-Vehicle Computers and IoT Devises".
    • Window JOIN (LEFT OUTER).
    • Window aggregation with grouping.
    • Types:
      • FLOAT
      • BOOLEAN
    • Out-of-order event-time processing.
    • Windows:
      • Time-based fixed-window
      • Time-based sliding-window
    • Rust high-level APIs.

    v0.1.1 - 2021-12-07

    Changed

    • Changed sleep time

    v0.1.0 - 2021-12-07

    Added

    • Initial release

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build: bump up version to 0.17.0

    build: bump up version to 0.17.0

    Issue number and link

    Describe your changes

    Checklist before requesting a review

    • [x] I follow the Semantic Pull Requests rules (bugfix/feature)
    • [ ] I specified links to related issues (must: bugfix, want: feature)
    • [x] I have performed a self-review of my code (bugfix/feature)
    • [ ] I have added thorough tests (bugfix/feature)
    • [x] I have edited ## [Unreleased] section in CHANGELOG.md following keep a changelog syntax (bugfix/feature)
    • [ ] I {made/will make} a related pull request for documentation repo (feature)
    opened by laysakura 0
  • ci(refactor): use `include:` instead of `exclude:`

    ci(refactor): use `include:` instead of `exclude:`

    Issue number and link

    Describe your changes

    T/O

    Checklist before requesting a review

    • [x] I follow the Semantic Pull Requests rules (bugfix/feature)
    • [ ] I specified links to related issues (must: bugfix, want: feature)
    • [x] I have performed a self-review of my code (bugfix/feature)
    • [ ] I have added thorough tests (bugfix/feature)
    • [ ] I have edited ## [Unreleased] section in CHANGELOG.md following keep a changelog syntax (bugfix/feature)
    • [ ] I {made/will make} a related pull request for documentation repo (feature)
    opened by laysakura 0
  • build: v0.16.1

    build: v0.16.1

    Issue number and link

    Describe your changes

    Checklist before requesting a review

    • [x] I follow the Semantic Pull Requests rules (bugfix/feature)
    • [x] I specified links to related issues (must: bugfix, want: feature)
    • [x] I have performed a self-review of my code (bugfix/feature)
    • [ ] I have added thorough tests (bugfix/feature)
    • [x] I have edited ## [Unreleased] section in CHANGELOG.md following keep a changelog syntax (bugfix/feature)
    • [ ] I {made/will make} a related pull request for documentation repo (feature)
    opened by laysakura 0
  • docs: make links in comments clickable

    docs: make links in comments clickable

    Issue number and link

    Describe your changes

    Checklist before requesting a review

    • [x] I follow the Semantic Pull Requests rules (bugfix/feature)
    • [ ] I specified links to related issues (must: bugfix, want: feature)
    • [x] I have performed a self-review of my code (bugfix/feature)
    • [ ] I have added thorough tests (bugfix/feature)
    • [ ] I have edited ## [Unreleased] section in CHANGELOG.md following keep a changelog syntax (bugfix/feature)
    • [ ] I {made/will make} a related pull request for documentation repo (feature)
    opened by laysakura 0
  • fix: UBs

    fix: UBs

    Issue number and link

    Fixes: #60

    Fixes: #49

    Describe your changes

    • Add rust integration tests.
    • Locally run MIRI and remove UBs detected through the tests.
    • Fix example to follow the new API.

    Checklist before requesting a review

    • [x] I follow the Semantic Pull Requests rules (bugfix/feature)
    • [x] I specified links to related issues (must: bugfix, want: feature)
    • [x] I have performed a self-review of my code (bugfix/feature)
    • [x] I have added thorough tests (bugfix/feature)
    • [x] I have edited ## [Unreleased] section in CHANGELOG.md following keep a changelog syntax (bugfix/feature)
    • [ ] I {made/will make} a related pull request for documentation repo (feature)
    opened by laysakura 0
  • UB in SpringConfig

    UB in SpringConfig

    Describe the bug

    MIRI detected UBs at least in SpringConfig.

    To Reproduce

    Steps to reproduce the behavior:

    1. Write the code below in lib.rs.
    #[test]
    fn test_spring_config_default() {
        unsafe {
            let config = spring_config_default();
            assert!(!config.is_null());
            spring_config_close(config);
        }
    }
    
    1. Install MIRI.
    rustup +nightly-2022-06-14 component add miri
    cargo +nightly-2022-06-14 miri test
    
    1. Run the test with MIRI.
    cargo +nightly-2022-06-14 miri test
    
    1. Got the following errors:
    running 3 tests
    test tests::spring_config::test_spring_config_default ... ok
    test tests::spring_config::test_spring_config_toml ... ok
    test tests::spring_source_row_builder::test_spring_source_row_builder ... error: Undefined Behavior: incorrect layout on deallocation: alloc2276582 has size 40 and alignment 8, but gave size 1 and alignment 1
       --> /Users/sho.nakatani/.rustup/toolchains/nightly-2022-06-14-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/alloc.rs:107:14
        |
    107 |     unsafe { __rust_dealloc(ptr, layout.size(), layout.align()) }
        |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incorrect layout on deallocation: alloc2276582 has size 40 and alignment 8, but gave size 1 and alignment 1
        |
        = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
        = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
                
        = note: inside `std::alloc::dealloc` at /Users/sho.nakatani/.rustup/toolchains/nightly-2022-06-14-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/alloc.rs:107:14
        = note: inside `<std::alloc::Global as std::alloc::Allocator>::deallocate` at /Users/sho.nakatani/.rustup/toolchains/nightly-2022-06-14-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/alloc.rs:244:22
        = note: inside `alloc::alloc::box_free::<std::ffi::c_void, std::alloc::Global>` at /Users/sho.nakatani/.rustup/toolchains/nightly-2022-06-14-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/alloc.rs:342:9
        = note: inside `std::ptr::drop_in_place::<std::boxed::Box<std::ffi::c_void>> - shim(Some(std::boxed::Box<std::ffi::c_void>))` at /Users/sho.nakatani/.rustup/toolchains/nightly-2022-06-14-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:487:1
        = note: inside `std::mem::drop::<std::boxed::Box<std::ffi::c_void>>` at /Users/sho.nakatani/.rustup/toolchains/nightly-2022-06-14-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/mem/mod.rs:974:24
    note: inside `spring_source_row::SpringSourceRow::drop` at src/spring_source_row.rs:24:9
       --> src/spring_source_row.rs:24:9
        |
    24  |         drop(inner);
        |         ^^^^^^^^^^^
    note: inside `spring_source_row_close` at src/lib.rs:344:9
       --> src/lib.rs:344:9
        |
    344 |         SpringSourceRow::drop(row);
        |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
    note: inside `tests::spring_source_row_builder::test_spring_source_row_builder` at src/tests/spring_source_row_builder.rs:23:9
       --> src/tests/spring_source_row_builder.rs:23:9
        |
    23  |         spring_source_row_close(row);
        |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    note: inside closure at src/tests/spring_source_row_builder.rs:8:1
       --> src/tests/spring_source_row_builder.rs:8:1
        |
    7   |   #[test]
        |   ------- in this procedural macro expansion
    8   | / fn test_spring_source_row_builder() {
    9   | |     unsafe {
    10  | |         let c1_col = CString::new("c1").unwrap();
    11  | |         let c1_value = vec![0x01, 0x02, 0x03];
    ...   |
    24  | |     }
    25  | | }
        | |_^
        = note: this error originates in the attribute macro `test` (in Nightly builds, run with -Z macro-backtrace for more info)
    
    note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
    
    error: aborting due to previous error
    
    error: test failed, to rerun pass '--lib'
    

    Expected behavior

    cargo miri exits with status code 0.

    Environment

    SpringQL-client-c

    • Version: v0.16.0+3

    your machine

    • Device: e.g. MacBook Pro (M1)
    • OS: macOS

    Additional context

    We detected memory leak in a C app.

    bug 
    opened by laysakura 0
  • build(deps): bump springql from 0.17.1 to 0.18.1

    build(deps): bump springql from 0.17.1 to 0.18.1

    Bumps springql from 0.17.1 to 0.18.1.

    Changelog

    Sourced from springql's changelog.

    [v0.18.1] - 2022-10-07

    For developers

    • Fix publish job in automated release (#248

    Changed

    • Bump Minimum Support Rust Version (MSRV) to 1.63 (#241)

    [v0.18.0] - 2022-09-21

    For developers

    [v0.17.2] - 2022-08-03

    Fixed

    • GenericWorker almost always got asleep after running a window task (#235)
    Commits
    • 439b2a5 update for release v0.18.1
    • 46fdba2 Merge pull request #249 from SpringQL/ci-fix/install-cargo-workspace
    • 06a3151 Revert "update for release v0.18.1"
    • 8673358 ci(fix): install cargo-workspaces
    • af5e60c update for release v0.18.1
    • d9673b5 Merge pull request #248 from SpringQL/ci-fix/cargo-publish
    • 0729f56 Merge branch 'main' into ci-fix/cargo-publish
    • 9959139 Merge pull request #241 from SpringQL/bump_mrsv_1.63
    • 6a2df9e docs: changelog
    • aa2c4bb ci(fix): automated cargo publish
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • ci: add `miri` job to run MIRI to tests

    ci: add `miri` job to run MIRI to tests

    Issue number and link

    Fixes: #61

    Describe your changes

    • add miri CI job
    • add miri cargo make task

    Checklist before requesting a review

    • [x] I follow the Semantic Pull Requests rules (bugfix/feature)
    • [x] I specified links to related issues (must: bugfix, want: feature)
    • [x] I have performed a self-review of my code (bugfix/feature)
    • [ ] I have added thorough tests (bugfix/feature)
    • [ ] I have edited ## [Unreleased] section in CHANGELOG.md following keep a changelog syntax (bugfix/feature)
    • [ ] I {made/will make} a related pull request for documentation repo (feature)
    opened by laysakura 1
  • apply api change for config deserialize

    apply api change for config deserialize

    Issue number and link

    Describe your changes

    Checklist before requesting a review

    • [x] I follow the Semantic Pull Requests rules (bugfix/feature)
    • [x] I specified links to related issues (must: bugfix, want: feature)
    • [x] I have performed a self-review of my code (bugfix/feature)
    • [ ] I have added thorough tests (bugfix/feature)
    • [ ] I have edited ## [Unreleased] section in CHANGELOG.md following keep a changelog syntax (bugfix/feature)
    • [ ] I {made/will make} a related pull request for documentation repo (feature)
    opened by kazuk 0
Releases(v0.17.1)
Owner
SpringQL
SpringQL: An open-source stream processor for IoT devices and in-vehicle computers.
SpringQL
Crate of GitHub’s collection of gitignores, embedded, automatically updated

Gitignores GitHub’s collection of gitignores, embedded, automatically updated. API documentation. Public Domain via CC0-1.0 (same as source data). MSR

null 3 May 3, 2022
An asynchronous Hardware Abstraction Layer (HAL) for embedded systems

embedded-hal-async An asynchronous Hardware Abstraction Layer (HAL) for embedded systems. This crate contains asynchronous versions of the embedded-ha

Diego Barrios Romero 3 Jan 22, 2022
A compatibility layer to smooth the transition between different versions of embedded-hal

Embedded HAL Compatibility Layer A compatibility layer to smooth the transition between different versions of embedded-hal (specifically 0.2.x and 1.0

Ryan 7 Sep 11, 2022
⚙️ Crate to discover embedded programming with uno r3 project

⚙️ Crate to discover embedded programming with uno r3 project

null 0 Feb 3, 2022
diff successive buffers with embedded ansi codes in rust, outputting a minimal change

ansi-diff diff successive buffers with embedded ansi codes in rust, outputting a minimal change You can use this crate to build command-line interface

James Halliday 7 Aug 11, 2022
TI LDC1312/LDC1314/LDC1612/LDC1614 inductance-to-digital converter driver for Rust embedded-hal

ldc1x1x Rust embedded-hal 1.x driver for Texas Instruments (TI) I²C inductance-to-digital converters (LDC): LDC1312/LDC1314, LDC1612/LDC1614. Includes

null 2 Oct 2, 2022
Ector is an open source async, no-alloc actor framework for embedded devices

Ector is an open source async, no-alloc actor framework for embedded devices. Ector is an open source async, no-alloc actor framework for embedded dev

Drogue IoT 11 Dec 15, 2022
An embedded-hal driver for the TT21100 multi-touch touchscreen controller

tt21100 An embedded-hal driver for the TT21100 multi-touch touchscreen controller. If there is a feature which has not yet been implemented and which

Jesse Braham 5 Jan 9, 2023
Embedded-hal simulator.

hal-sim - embedded-hal Simulator (WIP - UNFINISHED) This crate simulates a small portion of the embedded-hal traits. Namely: GPIO ADC Additionally, it

null 6 Jan 29, 2023
Port of the fantastic Iconoir Icon Pack to Rust embedded devices, with a focus on speed, usability, and completeness.

embedded-iconoir - Icons for every device, ever. What is embedded-iconor? embedded-iconoir is a library that allows you to use Iconoir on embedded dev

null 9 Mar 25, 2023
Drop-in embedded database

Struct DB ?? ?? Provides a drop-in, fast, and embedded database solution, focusing on maintaining coherence between Rust types and stored data with mi

Vincent Herlemont 7 May 19, 2023
A reactive runtime for embedded systems.

Actuate Examples A reactive diagram for robotics and control systems. Actuate leverages Rust's type system to create an efficient diagram that connect

null 7 Mar 4, 2024
A simple omegle API written in Rust

omegalul-rs omegalul-rs is a work-in-progress opensource library for building Omegle clients. Features Current Features Fetching random server from om

NV6 5 Jun 21, 2022
Simple fake AWS Cognito User Pool API server for development.

Fakey Cognito ?? Homepage Simple fake AWS Cognito API server for development. ✅ Implemented features AdminXxx on User Pools API. Get Started # run wit

naokirin 4 Aug 30, 2022
High level rust abstractions for the libretro API

libretro-rs Design Philosophy The approach to this crate can best be summarized as wanting to expose all functionality, even if not idiomatically. The

null 9 Dec 25, 2022
Femtorinth is a library to interact with a sub-set of the Modrinth API.

Femtorinth Femtorinth is a rust library to interact with a sub-set of the Modrinth api, it only includes the api calls that don't need auth (a.k.a onl

null 2 May 6, 2022
Rust library for interacting with the VTube Studio API

vtubestudio-rs A library for interacting with the VTube Studio API. Basic usage This example creates a Client using the provided builder, which: conne

null 6 Dec 4, 2022
⚡️ Fast MagicString port driven by Rust and N-API

magic-string-rs 100% API compatible (port) MagicString by Rich-Harris implementation for Node and modern browsers, also, for rust, of course. Installa

Hana 35 Nov 21, 2022
Stream-based FSEvents API bindings.

fsevent-stream Stream-based FSEvents API bindings. Features Support directory-granular and file-granular events. Retrieve related file inode with kFSE

LightQuantum 7 Dec 28, 2022