Hello Memcached community!


Just an update (v1.6.3):


*Unsupported/Disabled options/features (may support in the future):*

*tls* (Upstream support since v1.5.13) *Now supported! **Built and tested 
with latest OpenSSL (1.1.1d).* Built and tested with latest *BoringSSL 
(chromium-stable)*. *BoringSSL* reduced the statically-linked executable 
size by *~34%* (Win64 2.94MB -> 1.94MB). *BoringSSL* already rejects peer 
renegotiations by default so the unsupported *OpenSSL*-only *SSL_in_before* 
API used in memcached is no longer necessary. I just disabled it using 
*OPENSSL_IS_BORINGSSL* macro.

*Testing:*

*NOTE:* Since Perl-based test suite is not executed, test is lacking on 
some areas. *Use at your own risk!* Perl-based test suite is now ported and it 
was able to detect issues and I already fixed! Majority of the test suite 
change 
is only disabling the unsupported unix socket connection but no changes in 
test cases/scenarios. All tests *PASSED*! This will now give Windows users the 
confidence to use the native Windows port.

GitHub Release: 
https://github.com/jefyt/memcached-windows/releases/tag/1.6.3_mingw 

Build/Test/Artifacts: 
https://ci.appveyor.com/project/jefty/memcached-windows/builds/31859470

Again, the unsupported options/features (may support in the future):

   1. sasl (Upstream support since v1.4.3)
   2. extstore (Upstream support since v1.5.4)
   3. -u/user (Can use Windows runas command or Windows explorer's Run as 
   different user context menu)
   4. -s/unix-socket
   5. -k/lock-memory
   6. -r/coredumps
   7. seccomp


Regards,
Jefty

On Friday, March 27, 2020 at 10:25:05 PM UTC+1, Jefty Negapatan wrote:
>
> Hello Memcached community!
>
> Just an update:
>
> *Unsupported/Disabled options/features (may support in the future):*
>
>    1. *tls* (Upstream support since v1.5.13) *Now supported! Built and 
>    tested with latest OpenSSL (1.1.1d).*
>
> Just like cURL and Google Chrome for Windows, TLS library is statically 
> linked.
> Statically-linked exe size: *327KB* -> *3,008KB*
>
> Regards,
> Jefty
>
> On Tuesday, March 24, 2020 at 11:26:13 PM UTC+1, Jefty Negapatan wrote:
>>
>> Hello Memcached community!
>>
>> Just wanna share that I've ported the latest memcached (1.6.2 
>> <https://github.com/memcached/memcached/releases/tag/1.6.2>) to Windows. 
>> Based on my search if I'm not mistaken, the last native Windows build (not 
>> via Cygwin/WSL) is already outdated (1.4.5).
>>
>> *Unsupported/Disabled options/features (may support in the future):*
>>
>>    1. *sasl* (Upstream support since v1.4.3)
>>    2. *extstore* (Upstream support since v1.5.4)
>>    3. *tls* (Upstream support since v1.5.13)
>>    4. *-u/user* (Can use Windows *runas* command or Windows explorer's *Run 
>>    as different user* context menu)
>>    5. *-s/unix-socket* (Windows does not currently support Unix domain 
>>    socket)
>>    6. *-k/lock-memory* (Windows does not currently support locking of 
>>    all paged memory)
>>    7. *-r/coredumps* (mingw-w64 <http://mingw-w64.org/doku.php> 
>>    currently doesn't support postmortem but gdb debugging without coredump 
>> is 
>>    possible)
>>    8. *seccomp* (Linux-specific)
>>
>>
>> *Testing:*
>>
>>    1. memcached's *testapp* is also ported to easily verify that the 
>>    port is working as expected (all *57* tests are *OK*)
>>    2. *make test* will only execute *testapp.exe* and *sizes.exe* but 
>>    not the Perl-based test suite (at least currently)
>>    3. mc-crusher <https://github.com/memcached/mc-crusher> test is also 
>>    performed (although not really for hours/days).
>>    4. Maximum connection limit concurrency testing is also performed 
>>    using libMemcached <https://libmemcached.org/>'s *memcslap*.
>>    5. *NOTE:* Since Perl-based test suite is not executed, test is 
>>    lacking on some areas. *Use at your own risk!*
>>
>>
>> Since the ideal target is to be merged upstream although not really a 
>> priority and just depends on the maintainer, the codes are carefully 
>> written (and of course tested!) not to cause major merge conflicts with the 
>> base code. You can confirm this with the diffs. Building with changes for 
>> non-Windows target is just like building the original codes as changes are 
>> all protected with preprocessor macros (e.g. *DISABLE_UNIX_SOCKET*) and 
>> build env. Main logic is same as the official except for the necessary 
>> Windows-specific changes mostly implemented in separate files (see mingw 
>> folder). 
>> https://github.com/jefyt/memcached-windows#implementation-notes-for-devs 
>> contains the summary of changes.
>>
>> Just refer to https://github.com/jefyt/memcached-windows (*mingw* 
>> branch) for more details (e.g. building, binaries, notes).
>>
>> If you know anyone asking for Windows binaries or just interested to 
>> try/test/take a look, you can refer to this port.
>>
>> Thanks!
>>
>> Regards,
>> Jefty
>>
>>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"memcached" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to memcached+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/memcached/4d6116e1-d000-4c9c-b84d-efbc327fdb52%40googlegroups.com.

Reply via email to