All Projects → scapix-com → Scapix

scapix-com / Scapix

Licence: other
Scapix Language Bridge

Programming Languages

python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language
swift
15916 projects
cpp
1120 projects
csharp
926 projects
language
365 projects
cpp11
221 projects
cpp17
186 projects
cpp14
131 projects

Projects that are alternatives of or similar to Scapix

VF-BlenderAutoSaveRender
Automatically saves a numbered or dated image after every render and can extend the Blender output path with dynamic variables
Stars: ✭ 34 (-80.12%)
Mutual labels:  automatic, automated
Qtsharp
Mono/.NET bindings for Qt
Stars: ✭ 532 (+211.11%)
Mutual labels:  bridge, cross-platform
Jpype
JPype is cross language bridge to allow python programs full access to java class libraries.
Stars: ✭ 685 (+300.58%)
Mutual labels:  bridge, jni
Ddoor
DDoor - cross platform backdoor using dns txt records
Stars: ✭ 168 (-1.75%)
Mutual labels:  cross-platform
Div Games Studio
Complete cross platform games development package, originally for DOS but now available on modern platforms.
Stars: ✭ 168 (-1.75%)
Mutual labels:  cross-platform
Covscript
Covariant Script Interpreter
Stars: ✭ 169 (-1.17%)
Mutual labels:  cross-platform
Restyle
Stars: ✭ 171 (+0%)
Mutual labels:  cross-platform
Msquic
Cross-platform, C implementation of the IETF QUIC protocol.
Stars: ✭ 2,501 (+1362.57%)
Mutual labels:  cross-platform
Flameshot
Powerful yet simple to use screenshot software 🖥️ 📸
Stars: ✭ 15,429 (+8922.81%)
Mutual labels:  cross-platform
Rayo.js
Micro framework for Node.js
Stars: ✭ 170 (-0.58%)
Mutual labels:  bridge
Timelapse
🎬 Native macOS app for recording timelapse videos of your desktop.
Stars: ✭ 169 (-1.17%)
Mutual labels:  cross-platform
Persistentbottomnavbar
A highly customizable persistent bottom navigation bar for Flutter
Stars: ✭ 165 (-3.51%)
Mutual labels:  cross-platform
Battery
cross-platform, normalized battery information library
Stars: ✭ 170 (-0.58%)
Mutual labels:  cross-platform
Autopilot Rs
A simple, cross-platform GUI automation module for Rust.
Stars: ✭ 168 (-1.75%)
Mutual labels:  cross-platform
Uwebsockets
Simple, secure & standards compliant web server for the most demanding of applications
Stars: ✭ 13,412 (+7743.27%)
Mutual labels:  cross-platform
Protogame
This project has been sunset as of 1st Jan 2018 and is no longer supported or maintained
Stars: ✭ 166 (-2.92%)
Mutual labels:  cross-platform
Brook
Brook is a cross-platform strong encryption and not detectable proxy. Zero-Configuration. Brook 是一个跨平台的强加密无特征的代理软件. 零配置.
Stars: ✭ 12,694 (+7323.39%)
Mutual labels:  cross-platform
Robot Js
Native system automation for node.js
Stars: ✭ 169 (-1.17%)
Mutual labels:  cross-platform
Compile Hero
🔰Visual Studio Code Extension For Compiling Language
Stars: ✭ 169 (-1.17%)
Mutual labels:  automatic
Esp32 Serial Bridge
Wifi to 3x Serial bridge based on a ESP32
Stars: ✭ 169 (-1.17%)
Mutual labels:  bridge

Scapix Language Bridge

Tweet

Automatic, on the fly bindings from C++ to Java, Objective-C, Swift, Python, JavaScript (WebAssembly) and C#. Bridge code automatically generated directly from C++ header files, no need to manually maintain IDL definitions or bindings.

Scapix Bridge Intro

Integrating in CMake project

include(FetchContent)
FetchContent_Declare(
  cmodule
  URL "https://github.com/scapix-com/cmodule/archive/v1.0.27.tar.gz"
  URL_HASH SHA256=02c767f8fededb8b3bc410ceb0565e0d3a58b478f0de9dc3bba92d9d371e65f3
)
FetchContent_MakeAvailable(cmodule)

find_package(Scapix REQUIRED)

scapix_bridge_headers(
    chatlib
    "com.example.chat"
    "source/chat/contact.h"
    "source/chat/session.h"
    "source/chat/model.h"
)

Documentation

Examples:

Java Link

Modern C++17 wrapper for JNI:

  • type-safe APIs
  • automatic resource management
  • ZERO runtime overhead compared to manually written JNI code
  • automatic C++/Java type conversion for many standard types (std::string, std::vector, etc.)
  • automatic C++/Java exception tunneling
  • comes with pre-generated C++ headers for all JDK and Android Java APIs
  • automatically generate C++ headers for any Java code, including your own
#include <scapix/java_api/java/lang/System.h>
#include <scapix/java_api/java/util/Locale.h>
#include <scapix/java_api/java/text/DateFormatSymbols.h>

using namespace scapix::link::java;
using namespace scapix::java_api;

void test()
{
    // C++ objects are automatically converted to and from corresponding Java types.
    // This works for any type supported by scapix:🔗:java::convert<> interface,
    // which supports many STL types and can be extended for your own types.

    std::string version = java::lang::System::getProperty("java.version");
    std::vector<std::string> languages = java::util::Locale::getISOLanguages();
    std::vector<std::vector<std::string>> zone_strings = java::text::DateFormatSymbols::getInstance()->getZoneStrings();
    std::map<std::string, std::string> properties = java::lang::System::getProperties();
}

Java Link Documentation
Java Link Example

License

Please carefully read license agreement.

In short: If you comply with license agreement, you may use Scapix Language Bridge free of charge to build commercial and/or open source applications. You may NOT modify and/or redistribute the Scapix Language Bridge product itself.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].