<p><a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=10373537" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rbrunner7">@rbrunner7</a> It is the latter of what you described: Monero's C++ code is compiled to a dynamic library which is specific to the platform it is running on.  Java then uses that dynamic library to make native function calls to C++ using <a href="https://en.wikipedia.org/wiki/Java_Native_Interface" rel="nofollow">JNI</a> to handle the mappings between languages.</p>
<p>Running monero-wallet-rpc is not technically that different; it is running C++ code which wraps core wallet logic but which has been compiled as a standalone executable instead of a dynamic library for other libraries to use.  For comparison, the monero-wallet-rpc executable is 24.4 MBs on my system while the libmonero-cpp.dylib (the dynamic library built from C++ containing wallet2) is 24.9 MBs (similar because they wrap the same code).</p>
<p><a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=20237127" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/niyid">@niyid</a> The RPC and JNI wallet implementations conform to the same interfaces, so it should be easy to switch from one implementation to the other if you decide to.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/bisq-network/proposals/issues/110?email_source=notifications&email_token=AJFFTNTHFZ4IHP5NFMTRUYDQGZWJ3A5CNFSM4IO7EFUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5K65DQ#issuecomment-525725326">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNXZWZZXJVUPBZTUBR3QGZWJ3ANCNFSM4IO7EFUA">mute the thread</a>.<img src="https://github.com/notifications/beacon/AJFFTNUVTVQ63XDOL2URMETQGZWJ3A5CNFSM4IO7EFUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5K65DQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/bisq-network/proposals/issues/110?email_source=notifications\u0026email_token=AJFFTNTHFZ4IHP5NFMTRUYDQGZWJ3A5CNFSM4IO7EFUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5K65DQ#issuecomment-525725326",
"url": "https://github.com/bisq-network/proposals/issues/110?email_source=notifications\u0026email_token=AJFFTNTHFZ4IHP5NFMTRUYDQGZWJ3A5CNFSM4IO7EFUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5K65DQ#issuecomment-525725326",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>