commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chen, Haifeng" <haifeng.c...@intel.com>
Subject RE: [CRYPTO] Switch from JNI to JNA
Date Mon, 25 Apr 2016 06:38:04 GMT
>> Maybe its an option to replace JNI by JNA [1]. This would have IHMO several advantages
like
>> * No C code needs to be written, compiled, tested and maintained
>> * Its easier compared to JNI (this could help attracting more people to contribute)
>> * Many supported platforms [2], precompiled native binaries available
Agree on these advantages.

>> Disadvantages:
>> * Introduce a dependency to JNA
>> * Performance decrease compared to JNI (direct buffers and direct mapping helps minimizing
this) [3]
The major concern will be on the performance. Because the major value for Crypto is to utilize
the performance optimization OpenSSL provided. 
Need to have an evaluation on how much performance penalty will occur when using JNA comparing
JNI.

The Spark community are eager to utilize this library. If we can have the first release before
May, there is a possibility to include it in Spark 2.0.
Any idea to put JNA evaluation in the second release?

Thanks,
Haifeng

-----Original Message-----
From: Hendrik Dev [mailto:hendrikdev22@gmail.com] 
Sent: Saturday, April 23, 2016 6:43 PM
To: Commons Developers List <dev@commons.apache.org>
Subject: [CRYPTO] Switch from JNI to JNA

Hi,

i just had a brief look into commons crypto today.
Maybe its an option to replace JNI by JNA [1]. This would have IHMO several advantages like

* No C code needs to be written, compiled, tested and maintained
* Its easier compared to JNI (this could help attracting more people to contribute)
* Many supported platforms [2], precompiled native binaries available

Disadvantages:

* Introduce a dependency to JNA
* Performance decrease compared to JNI (direct buffers and direct mapping helps minimizing
this) [3]

I prepared a demo [4] to show thats its generally working and how a implementation could like
(although tests are not working and error handling is missing).

[1] https://github.com/java-native-access/jna
[2] https://github.com/java-native-access/jna/tree/master/lib/native
[3] https://s.apache.org/q5Tl
[4] https://s.apache.org/DQeD

Wdyt?

Thanks
Hendrik

--
Hendrik Saly (salyh, hendrikdev22)
@hendrikdev22
PGP: 0x22D7F6EC

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org

Mime
View raw message