Git Product home page Git Product logo

Comments (13)

 avatar commented on April 28, 2024

We'd like bindings for as many languages as possible, and C would make sense to have. That said, since FlatBuffers derives its performance from being a super-thin inline-able layer, supporting a new language isn't a case of making "bindings" for flatbuffers.h, it is more like re-implementing flatbuffers.h (and providing a idl_gen_lang.cpp similar to idl_gen_cpp.cpp), which is a fair bit of work to do properly.

from flatbuffers.

 avatar commented on April 28, 2024

Is anyone working on this? I've started working on this and I've created an idl_gen_c.cpp and added the necessary code to flatbuffers.h and to flatc.cpp. The code generation piece is far from finished, but I was wondering if anyone is already working on this functionality.

from flatbuffers.

 avatar commented on April 28, 2024

Noone is working on this as far as I know, and I'd be happy to take a PR if what you're making conforms to the standards of what's already there.

What I am wondering about is flatbuffers.h, since it has tons of C++ top to bottom, adding C functionality sound to me like a LOT of ifdefs. Wouldn't a separate header for C make more sense?

Feel free to point me to the code you have so far, so I can maybe comment on it.

from flatbuffers.

yynil avatar yynil commented on April 28, 2024

C binding is very important for some special cases like iOS SDK prior to iOS 5.0, which doesn't support c++11. I'm also wondering if i could help to add a C binding.

from flatbuffers.

 avatar commented on April 28, 2024

yynil: if you want to help, check with diffuse above if there's something you can do.

from flatbuffers.

rw avatar rw commented on April 28, 2024

Given Go's simplicity (i.e. lack of expressivity), the Go port might be a good point from which to begin writing the C port. The C++ version is more concise and thus maybe harder to port.

from flatbuffers.

 avatar commented on April 28, 2024

I've had a little more time to work on the C binding. I am working on creating a C version of flatbuffers.h. It will exist as flatbuffers_c.h. I will be creating a fork within the next week so I can start getting some input for the C binding.

from flatbuffers.

 avatar commented on April 28, 2024

Good news! :)

from flatbuffers.

 avatar commented on April 28, 2024

I haven't worked on the C binding in a long while. I don't see me completing it any time soon as I have become too busy. Perhaps when I get some downtime I can begin work on it again.

from flatbuffers.

 avatar commented on April 28, 2024

Ok, good to know. Just note on this issue if you do work on it again.

from flatbuffers.

 avatar commented on April 28, 2024

Do you know if anyone else is working a C port?

On Mon, Jan 5, 2015 at 5:38 PM, gwvo [email protected] wrote:

Ok, good to know. Just note on this issue if you do work on it again.


Reply to this email directly or view it on GitHub
#7 (comment).

from flatbuffers.

mikkelfj avatar mikkelfj commented on April 28, 2024

https://github.com/dvidelabs/flatcc just released

from flatbuffers.

rw avatar rw commented on April 28, 2024

@mikkelfj Interesting!

from flatbuffers.

Related Issues (20)

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.