Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C and C++ API:s #1326

Closed
emilk opened this issue Feb 16, 2023 · 6 comments
Closed

C and C++ API:s #1326

emilk opened this issue Feb 16, 2023 · 6 comments
Labels
🏹 arrow concerning arrow 🌊 C++ API C/C++ API specific enhancement New feature or request 🎄 tracking issue issue that tracks a bunch of subissues

Comments

@emilk
Copy link
Member

emilk commented Feb 16, 2023

More details in:

We will eventually build a low-level C API for embedded platforms, but the above issues is about C++ in particular.

@emilk emilk added enhancement New feature or request 🏹 arrow concerning arrow 🎄 tracking issue issue that tracks a bunch of subissues labels Feb 16, 2023
@asuper0
Copy link

asuper0 commented Jun 13, 2023

How is this going on? I'd like to write C API which is wrapper of RUST API, and cover all the primitives. Expect your advise.

@crownedone
Copy link

It looks like they are still working on additional primitives (i.e #1630) and mentioned that they think about changing the structure of these in a way that makes interfacing with other languages easier.

That means writing a C interface now could be made obsolete/changed soon (please correct me).

Is there any more specific information on this? (Eagerly waiting to be able to use Rerun from C++!!!)

Wonder if you considered the use of some general data interface (like Protobuf)?

I'd be willing to contribute as well ;)

@Wumpf
Copy link
Member

Wumpf commented Jun 13, 2023

@asuper0 @crownedone We're making some good progress on generating Rust & Python APIs from data definition files since we figured by now that adding new components and new language front ends is way too tedious otherwise. I sadly still can't give any timelines, but this gets us a huge step towards supporting more languages and a C interface is going to be the first one added.

I deeply appreciate the willingness to help 🙇 , but given that we commited to that way now, anything landing regarding C is pretty much blocked by the codegen effort.
(There's plenty of other places where we could use help though, check the Good First Issue and the Quick Issue tags 😃 )

That said, if you want to pipe through something to C the easiest way right now is to write a Rust library depending on the Rerun crate that exposes what you need to C.

If you want to track the progress / are curious what the upcoming codegen things looks like check PRs and Issues tagged with codegen

@asuper0
Copy link

asuper0 commented Jun 14, 2023

(There's plenty of other places where we could use help though, check the Good First Issue and the Quick Issue tags 😃 )

These issue may be too complicated for me🤣 I don't intend to go into the inner code.

My planning is writing a Rust proxy, which offers C-like API that receive raw data and convert them to rerun primitive datatype.

While I had a experience of upgrading my code dependency of Rerun from 0.4.0 -> 0.5.1 -> 0.6.0, it could be promised that the Rust proxy code will only have littte change with Rerun upgrading, and have no need to change the C API.

I think these work would't be too much.

@emilk emilk added the 🌊 C++ API C/C++ API specific label Jul 3, 2023
@Wumpf
Copy link
Member

Wumpf commented Aug 7, 2023

New tracking issue for first version of C++ SDK that is posed to be available in 0.9.0:

Keeping this open since it's the "original" and a bunch of people might monitor this

@emilk
Copy link
Member Author

emilk commented Nov 6, 2023

We now have a C++ API!

@emilk emilk closed this as completed Nov 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏹 arrow concerning arrow 🌊 C++ API C/C++ API specific enhancement New feature or request 🎄 tracking issue issue that tracks a bunch of subissues
Projects
None yet
Development

No branches or pull requests

4 participants