v8pp

Bind C++ functions and classes into V8 JavaScript engine

OTHER License

Downloads
355
Stars
900
Committers
20

Bot releases are hidden (Show)

v8pp - Version 2.1.1 Latest Release

Published by pmed about 1 year ago

  • fix CI run
  • Call NewDefaultAllocator() for v8::Isolate::CreateParams field (#198)
v8pp - Version 2.1.0

Published by pmed almost 2 years ago

  • C++17 required
  • explicit binding methods: var, function, const_
  • more standard types support: std::tuple, std::variant
  • fix tests for the recent V8 versions
v8pp - Version 1.8.1

Published by pmed almost 3 years ago

  • C++14 required
  • CMake support: #138
  • GitHub Actions for CI pipeline: #171, #173
  • Generic converters for containers, strings, tuples: #148, #160
  • Fixed issues: #133, #136, #159, #162, #166, #175, #176, #177
v8pp - Version 1.7.0

Published by pmed over 4 years ago

  • Bug fixes and improvements: #105, #106, #110, #113, #116, #117, #123, #131
  • V8 versions 7.x support, updated examples, docs
  • Visual C++ 2019 support
v8pp - Version 1.6.0 with Node.js >= 8.X support

Published by pmed almost 6 years ago

Updated minimum requirements to the project:

  • C++ toolset:
    • Microsoft Visual C++ 2015/2017 (Windows 10)
    • GCC 5.4.0 (Ubuntu 16.04)
    • Clang 5.0.0 (Ubuntu 16.04)
  • V8 version: >= 6.3
  • Node.js version >= 8.0

Fixed issues: #80, #84, #88, #91

v8pp - V8 5.9 support

Published by pmed almost 6 years ago

Before dropping support of old V8 versions with deprecated API

v8pp -

Published by pmed about 6 years ago

Bug fixes

v8pp - Allow to store wrapped C++ objects in `std::shared_ptr`

Published by pmed almost 7 years ago

  • Wrapped C++ class now can be bound to store objects in std::shared_ptr:
class MyClass {};
v8pp::class_<MyClass, true> MyClass_binding(isolate);

v8::Handle<v8::Object> v8_obj = v8pp::class_<MyClass, true>::create_object(isolate);
std::shared_ptr<MyClass> obj = v8pp::class_<MyClass, true>::unwrap_object(isolate, v8_obj);
  • Added compile-time type_id() function instead of RTTI usage.
  • Fixed an issue #62
v8pp - Fixed issue with deleting referenced C++ objects

Published by pmed about 7 years ago

See #60: C++ objects referenced with reference_external are still deleted when class_::destroy() is called

v8pp - Custom RTTI, do not use V8 isolate by default

Published by pmed almost 8 years ago

Custom type_info and type_id<T> are used in C++ class binder implementation. This allows to not force standard RTTI usage, which is turned off on many projects and in default Node.js addon configuration. Many thanks to @Manu343726 and @foonathan for their idea in https://github.com/Manu343726/ctti library.

A registery of bound classes is not stored in a V8 isolate by default from now. This is fine for typical use case, until we bind classes in multiple shared libraries (see #26). For the scenario with multiple shared libraries, define in all projects # V8PP_ISOLATE_DATA_SLOT with V8 slot number to store the classes registry there.

Fixed an issue with destroy of weak references to v8::External. They are used to store data with sizeof(data) > sizeof(void*), like lambda bindings (see #30).

v8pp - Update Node.js addons documentation

Published by pmed about 8 years ago

v8pp - Use RTTI for classes identification

Published by pmed about 8 years ago

Replaced static variables for class types identification by std::type_index in order to resolve an issue with the classes identification across different shared libraries.

Removal of those static variables also leads up to better concurrency support with multiple V8 isolates (see #28)

According to nodejs/node#6216 only primitive values and V8 templates are allowed to set in a v8::ObjectTemplate.

v8pp -

Published by pmed about 8 years ago

v8pp -

Published by pmed about 8 years ago

v8pp -

Published by pmed about 8 years ago

v8pp -

Published by pmed about 8 years ago