You know you're a hopeless geek when you:

  A.  Spend all day Saturday reorganizing a codebase and build system that
already works, just for fun.

  B.  Tell people about it.

libchibi <https://github.com/iotivation/libchibi>

Why?  I found the code structure and build system of Iotivity mildly
opaque, and I got to wondering whether it would be possible to more cleanly
separate the c kernel from the c++ stuff.  In my ideal world, the c kernel
would be a separate thing, and the c++ stuff, as a higher-level layer,
would be just another SDK, just like a Java or Lua or Javascript SDK.

For example to get Iotivity running on a very constrained device you might
want to leave some stuff out, and include only the minimal functionality
you need. I get the feeling Iotivity is already designed to support that
sort of thing but it's been kinda hard for me to see how it all fits
together and how to pull it apart.

So anyway having acquired a basic understanding of the build system and
structure from porting it to Darwin I decided to go crazy and see how hard
it would be to turn resource/csdk into a kind of standard c project, with
the usual include/, lib/, src/ directories, etc. Not that hard, it turns
out. What's there compiles but has not been extensively tested and might
have problems. And I'm not sure csdk has all the functionality required for
it to be called an OIC implemenation.

I don't know how far I'm going to go with this, but in the next two weeks
I'm going to try to get Iotivity running on Zephyr on the Arduino 101.
maybe with libchibi as well as the official code.

Not intended as a fork, but it occurs to me that it might be a Good Thing
if it did turn into a fork.  IETF requires two independent implementations
for a protocol to advance to a standard; that seems like a Good Thing for
OIC as well.  libchibi is hardly independent, but still it seems like it
would be a good thing to have two different projects at least.

Cheers,

Gregg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20160606/765d6aeb/attachment.html>

Reply via email to