finds.dev← search

// the find

sergiimk/SekaiFramework

★ 12 · C · NOASSERTION · updated Jun 2010

OSGi-like module platform and service bus for C++

An OSGi-style plugin framework for C++ with two extension models: a declarative XML-based one similar to Eclipse plugins, and a full dynamic component model supporting runtime install/uninstall of bundles without restart. Also includes a reflection system for runtime Python bindings generation. This is academic-quality architecture work, not production software.

The dynamic bundle lifecycle model is genuinely ambitious — install, start, stop, update, uninstall without restart is hard to get right in C++ and not many open-source projects attempted it. The reflection system driving runtime script bindings is a clean idea: expose C++ types to Python without a code-gen step at build time. The module boundary abstraction (GUID-identified interfaces, smart pointer ref-counting, allocation policies) shows real thought about binary encapsulation and ABI stability. Two separate extension models in one framework gives you a migration path — start declarative, upgrade to full OSGi when you need dynamism.

Abandoned in 2010, built against MSVC 9 and 10 with Code::Blocks project files — you will spend days just getting it to compile with any modern toolchain, and the C++ it uses predates move semantics, range-for, and modern CMake by years. The threading module is documented as 'maybe wait for C++0X ??' which tells you everything about its state of completion. GPL v3 dual-license with a commercial option means you need to negotiate a separate license for any closed-source use, and there's no indication the author is reachable for that. No CI, no package manager integration, vendored binary libs (tinyxml32.lib, zlib32.lib) checked into git — adoption would mean taking on a maintenance burden that hasn't moved in 15 years.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →