• 0

Iperf 3.9 Windows build


Question

+BudMan

So there has been an on going thread about powerline adapters, well the OP finally got some - and I was curious about speed he is seeing, etc.  So told him would post up links to some tools.

 

This lead me to compiling the latest version of iperf3 I could find for windows ;) Since I couldn't find one.  So figured post it up if anyone is interested.

 

Got the source from here https://github.com/esnet/iperf

Found a blog post how to compile on windows here http://www.embeddedsystemtesting.com/2014/08/how-to-compile-iperf3-for-windows.html

 

So few minutes later I end up with a copy of the current iperf3 that works on windows.  Needs a few cygwin dlls, included in the zip.  But other than that unzip and go.

 

It has lots of new options compared to the older versions

 

Been a fan of iperf for years, so will prob keep this current when new versions come out since doesn't seem like anyone else is posting up the windows builds, etc.

You can grab all my compiled versions here https://files.budman.pw/

Any questions on its use, just ask -- post up some tests as well!!

 

edit: updated this on 02/25/17 new build 3.1.6

http://software.es.net/iperf/news.html#iperf-3-1-6-released

This version of iperf3 contains two minor fixes. Notably, one of them unbreaks JSON output with UDP tests.

 

edit2:  5/23/17 Thanks to @Datalink for letting me know site was down.  Back up now, if your having issues flush your dns had to move it to different host.  Added site to my monitoring so next time it goes down will know right away ;)

BTW 3.1.7 just typo's so no reason to compile it

2017-03-06: iperf-3.1.7 released

This version of iperf3 contains two documentation fixes, but is otherwise identical to the prior release.

 

edit3: 7/6/17 Updated to new 3.2 build

http://files.budman.pw/iperf3.2_32bit.zip

CRC32: 9e4b913c
MD5: ff7fc42f6ba29e9f83c8bb8e0066f722
SHA-1: 68ad3a0f0c2f30c1756f0a5eb39e1062e6beb6f4

http://files.budman.pw/iperf3.2_64bit.zip

CRC32: add96290
MD5: 7a014ff67b1d678f546ead2360820d47
SHA-1: 98ed98ac6d392a4484e5151ab2f714390c99b52e

 

edi4: 11/18/17 Updated to new 3.3 build

https://files.budman.pw/iperf3.3_64.zip

MD5: 49095ccb2442101d2a1ffc6213f3d1b9
SHA-256: 1fea7ae97b8ec5ab1c61ef1afcf7afd491d37ef41061a845f9bb8477425c66db

 

https://files.budman.pw/iperf3.3_32.zip

MD5: b6ad4c094a18196e0798e1a2825bc609
SHA-256: 919978ac0b574d7662d5b0e58174a6107002db96e7592929a9a28938516a2c5f

 

edit5: 02/16/2018 Updated to new 3.4 build see post in thread

https://files.budman.pw/iperf3.4_32.zip

MD5: 3b805d0895e7bb4d005429ed5859dd00
SHA-256: 82a933bbf96731a615ee5ae40bc1e6986ffcdd0b83c7c4e9cd024a996b3c0808
https://files.budman.pw/iperf3.4_64.zip

MD5: e4c0d2d8bda22ebbb710a9a65aacddf9
SHA-256: 7a3f83d211d22102d05dcf0eb24f4ff8cd3d9083aada9a27c88ba7ced0a0eccc

 

edit6: 03/05/2018 Updated to 3.5 build, see post in thread

https://files.budman.pw/iperf3.5_64.zip

CRC32: 18962237
MD5: 840a2d5e0f81d8a6dc0d8be854caf61a
SHA-1: 1a18185c79645b082392dcd024b7e53900dc38bd
SHA-256: 94a0ec4e486904a6a8ebe390eca37871f47a097599908c3647d6ad1d0bbdff59
 

https://files.budman.pw/iperf3.5_32.zip

CRC32: 21d8a0eb
MD5: dd79fe69c86e62c780e45e6e0d2ec66d
SHA-1: 2c63c1f9ef35be23170869a6a7eb048241aa2f14
SHA-256: bf4b95a58e54ceda101e33b0b908c581df1ce4a217f233e1092dc3278572de43

 

edit7:

https://files.budman.pw/iperf3.6_64bit.zip

CRC32: A9B23E64
MD5: 3530BD3C837EA146C8F98106FA94E395
SHA-1: 7E09239B207739714294A4EA1DA9C69623374740
SHA-256: DE958C4CF72DBC64DCBB42130BD466D9FD367E4519C5C3F78A6675CA87E12B7D

 

edit8: Updated 7/6/2019 New 3.7 build, see post in thread

https://files.budman.pw/iperf3.7_64.zip

CRC32: 13EB9AD9
MD5: 96C2C058B0128BEC346BD0D034D7B31E
SHA-1: 83978F54B7EDDA073CC4E865493AA6544862879A
SHA-256: 93FB4641810C06DE554E97FD4E6B44CEFBD8ECB8EA8CFEA3CC550B823C3E89CE

 

edit9: Updated 3/11/2020 updated cygwin, guess there was some bug in the cygwindll, see post in thread.

https://files.budman.pw/iperf3.7_64_updated_cygwin1dll.zip

CRC32: ABCA3CAA
MD5: C3594A08967FD57BF36F757980480F9D
SHA-1: DF6C8B3D18941DABBC5AB21ACB5844A062620092
SHA-256: B1A14F8B2435AAA98D26F8499DF23BF6532B5F0EA2288DA04E0C28333EDBC48E

 

edit10: Updated 6/9/2020 New 3.8 build, see post in thread

https://files.budman.pw/iperf3.8_64bit.zip

MD5: 38A01DC0D4CC67058B094A96274A6F49
SHA-256: E37B0885EFA60106A3333CDAE878815B2306B434175F2BFBAF2DBF709BAB2049

 

edit11: updated 6/10/2020 New 3.8.1, see post in thread

https://files.budman.pw/iperf3.8.1_64.zip

CRC32: 69CE7B06
MD5: 1157B038DC04646B074A822A171E77A7
SHA-1: A692D6E5FAD3004A229C92661EC4448004EA269E
SHA-256: CD337C2EEB5ACF02713867990E4F9F0656CC0CAEA850F3B3C289DD79305DF1A1

 

edit12: updated 8/17/2020 New 3.9, see post in thread

https://files.budman.pw/iperf3.9_64.zip

Name: iperf3.9_64.zip
Size: 1542276 bytes (1506 KiB)
SHA256: 15D2D3C2A8B9A69EFD9991FEFE5206E31D6055399F7A4C663C3CB6D77B6770F8

 

  • Like 12
Link to post
Share on other sites

Recommended Posts

  • 0
+BudMan

So I prettied up the dir listing, got rid of some old versions.  And enabled https for those that think everything should be https ;)

 

https://files.budman.pw

 

If anyone wants/needs version prior to 3.1.1 just let me know and can put it up.

  • Like 1
Link to post
Share on other sites
  • 0
+BudMan

Added 3.3

 

Budman@I5-WIN D:\Iperf\iperf3.3_32
> iperf3.exe -v
iperf 3.3 (cJSON 1.5.2)
CYGWIN_NT-6.3-WOW i5-win 2.9.0(0.318/5/3) 2017-09-12 10:41 i686
Optional features available: authentication

 

Budman@I5-WIN D:\Iperf\iperf3.3_64
> iperf3.exe -v
iperf 3.3 (cJSON 1.5.2)
CYGWIN_NT-6.3 i5-win 2.9.0(0.318/5/3) 2017-09-12 10:18 x86_64
Optional features available: authentication

 

File: iperf3.3_64.zip
MD5: 49095ccb2442101d2a1ffc6213f3d1b9
SHA-256: 1fea7ae97b8ec5ab1c61ef1afcf7afd491d37ef41061a845f9bb8477425c66db

 

File: iperf3.3_32.zip
MD5: b6ad4c094a18196e0798e1a2825bc609
SHA-256: 919978ac0b574d7662d5b0e58174a6107002db96e7592929a9a28938516a2c5f

 

https://files.budman.pw/

 

 

 

  • Like 1
Link to post
Share on other sites
  • 0
+BudMan

New 3.4 is out

 

Budman@I5-WIN D:\iperf3.4_64

> iperf3.exe -v
iperf 3.4 (cJSON 1.5.2)
CYGWIN_NT-6.3 i5-win 2.10.0(0.325/5/3) 2018-02-02 15:16 x86_64
Optional features available: CPU affinity setting, authenticatio

 

Budman@I5-WIN D:\iperf3.4_32
> iperf3.exe -v
iperf 3.4 (cJSON 1.5.2)
CYGWIN_NT-6.3-WOW i5-win 2.10.0(0.325/5/3) 2018-02-02 15:21 i686
Optional features available: authentication

 

https://files.budman.pw/iperf3.4_32.zip

MD5: 3b805d0895e7bb4d005429ed5859dd00
SHA-256: 82a933bbf96731a615ee5ae40bc1e6986ffcdd0b83c7c4e9cd024a996b3c0808
https://files.budman.pw/iperf3.4_64.zip

MD5: e4c0d2d8bda22ebbb710a9a65aacddf9
SHA-256: 7a3f83d211d22102d05dcf0eb24f4ff8cd3d9083aada9a27c88ba7ced0a0eccc

 

https://github.com/esnet/iperf/blob/master/RELEASE_NOTES

release notes

== iperf 3.4 2018-02-14 ==

* Notable user-visible changes

  * The -A (set processor affinity) command-line flag is now supported
    on Windows (#665).

  * iperf3 now builds on systems lacking a daemon(3) library call
    (#369).

  * A bug in time skew checking under authentication was fixed (#674).

  * IPv6 flow labels now work correctly with multiple parallel streams
    (#694).

  * The client no longer closes its control connection before sending
    end-of-test statistics to the server (#677). This fixes a
    regression introduced in iperf-3.2.

  * Sending output to stdout now makes errors go to stderr, as per
    UNIX convention (#695).

  * A server side crash in verbose output with a client running
    multiple parallel connections has been fixed (#686).

  * The --cport option can now be specified without the --bind option.
    Using the --cport option on Linux can eliminate a problem with
    ephemeral port number allocation that can make multi-stream iperf3
    tests perform very poorly on LAGG links.  Also, the --cport option
    now works on SCTP tests (#697).

* Notable developer-visible changes

  * iperf3 now builds on (some) macOS systems older than 10.7 (#607).

  * Some unused code and header inclusions were eliminated (#667,
    #668).  Also some code was cleaned up to eliminate (or at least
    reduce) compiler warnings (#664, #671).

  • Like 1
Link to post
Share on other sites
  • 0
+BudMan

3.5 is out

 

== iperf 3.5 2018-03-02 ==

* Notable user-visible changes

  * iperf3 no longer counts data received after the end of a test in
    the bytecounts.  This fixes a bug that could, under some
    conditions, artificially inflate the transfer size and measured
    bitrate.  This bug was most noticeable on reverse direction
    transfers on short tests over high-latency or buffer-bloated
    paths.  Many thanks to @FuzzyStatic for providing access to a test
environment for diagnosing this issue (#692).

 

Budman@I5-WIN D:\iperf3.5_32
> iperf3.exe -v
iperf 3.5 (cJSON 1.5.2)
CYGWIN_NT-6.3-WOW i5-win 2.10.0(0.325/5/3) 2018-02-02 15:21 i686
Optional features available: authentication

 

Budman@I5-WIN D:\iperf3.5_64
> iperf3.exe -v
iperf 3.5 (cJSON 1.5.2)
CYGWIN_NT-6.3 i5-win 2.10.0(0.325/5/3) 2018-02-02 15:16 x86_64
Optional features available: CPU affinity setting, authentication

 

https://files.budman.pw/iperf3.5_64.zip

CRC32: 18962237
MD5: 840a2d5e0f81d8a6dc0d8be854caf61a
SHA-1: 1a18185c79645b082392dcd024b7e53900dc38bd
SHA-256: 94a0ec4e486904a6a8ebe390eca37871f47a097599908c3647d6ad1d0bbdff59
 

https://files.budman.pw/iperf3.5_32.zip

CRC32: 21d8a0eb
MD5: dd79fe69c86e62c780e45e6e0d2ec66d
SHA-1: 2c63c1f9ef35be23170869a6a7eb048241aa2f14
SHA-256: bf4b95a58e54ceda101e33b0b908c581df1ce4a217f233e1092dc3278572de43
 

Link to post
Share on other sites
  • 0
+BudMan

Yeah like anyone would care?  Its XP... Been dead OS for years and years...

https://www.microsoft.com/en-us/windowsforbusiness/end-of-xp-support

 

So April of 2014 - your talking 4 years ago.. What next you will want it to run in Dos 6.2? ;)

 

Sorry but I am not going to troubleshoot it.. These versions work on my 64 bit system, why I still do the 32 bit I don't really know - but it also runs on my 64 bit system..

 

Hint move to a current 64 bit windows ;)

Link to post
Share on other sites
  • 0
NoNeed4Mercy

anyone encouters this new problem in newer versions!

 

I was running the latest windows version before from the official site (very old from 2016). It was working flawlessly except for udp mode. So i wanted to update and build the code by myself. It seemed to work for the first time, but the server immediatly crashes after the first connect, making a second connect impossible. 

 

I thought i made a bad build and downloaded several versions from here.. All are crashing after the first connect (which is successfull).

 

Oh and one thing i forgot. This only happens in "silent mode" server. If i start the server by myself via cmd, it will stay open. If i start the server from windows server (with no gui) the server crashes after one connect. 

 

Any hint/tip would be great! 

Edited by NoNeed4Mercy
missing information
Link to post
Share on other sites
  • 0
NoNeed4Mercy
50 minutes ago, NoNeed4Mercy said:

anyone encouters this new problem in newer versions!

 

I was running the latest windows version before from the official site (very old from 2016). It was working flawlessly except for udp mode. So i wanted to update and build the code by myself. It seemed to work for the first time, but the server immediatly crashes after the first connect, making a second connect impossible. 

 

I thought i made a bad build and downloaded several versions from here.. All are crashing after the first connect (which is successfull).

 

Oh and one thing i forgot. This only happens in "silent mode" server. If i start the server by myself via cmd, it will stay open. If i start the server from windows server (with no gui) the server crashes after one connect. 

 

Any hint/tip would be great! 

Delete my post! -D is working in newer versions for windows service! 

Link to post
Share on other sites
  • 0
+BudMan

Yeah I grabbed it the other day just haven't gotten around to compile yet.  Prob today

Link to post
Share on other sites
  • 0
+BudMan

Well might take me a bit to get this compiled running into an error

 

budman@i5-win /iperf-3.6
$ make
Making all in src
make[1]: Entering directory '/iperf-3.6/src'
make  all-am
make[2]: Entering directory '/iperf-3.6/src'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.     -g -O2 -Wall -MT iperf_api.lo -MD -MP -MF .deps/iperf_api.Tpo -c -o iperf_api.lo iperf_api.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -g -O2 -Wall -MT iperf_api.lo -MD -MP -MF .deps/iperf_api.Tpo -c iperf_api.c  -DDLL_EXPORT -DPIC -o .libs/iperf_api.o
In file included from /usr/include/w32api/Windows.h:95:0,
                 from iperf_api.c:67:
/usr/include/openssl/ossl_typ.h:159:29: error: expected ‘)’ before numeric constant
 typedef struct X509_name_st X509_NAME;
                             ^
/usr/include/openssl/ossl_typ.h:207:33: error: expected ‘)’ before numeric constant
 typedef struct ocsp_response_st OCSP_RESPONSE;
                                 ^
make[2]: *** [Makefile:897: iperf_api.lo] Error 1
make[2]: Leaving directory '/iperf-3.6/src'
make[1]: *** [Makefile:665: all] Error 2
make[1]: Leaving directory '/iperf-3.6/src'
make: *** [Makefile:386: all-recursive] Error 1

budman@i5-win /iperf-3.6
$

Link to post
Share on other sites
  • 0
+BudMan

Ok I got it working.. Have not had chance to fully test all features but it compiled

 

In the header file ossl_typ.h I made the change

#ifndef HEADER_OPENSSL_TYPES_H
# define HEADER_OPENSSL_TYPES_H

#include <limits.h>

#ifdef  __cplusplus
extern "C" {
#endif

# include <openssl/e_os2.h>

# include <windows.h>

 

https://files.budman.pw/iperf3.6_64bit.zip

CRC32: A9B23E64
MD5: 3530BD3C837EA146C8F98106FA94E395
SHA-1: 7E09239B207739714294A4EA1DA9C69623374740
SHA-256: DE958C4CF72DBC64DCBB42130BD466D9FD367E4519C5C3F78A6675CA87E12B7D

 

budman@i5-win /usr/local/bin
$ cygcheck iperf3.exe
Found: C:\cygwin64\usr\local\bin\iperf3.exe
C:\cygwin64\usr\local\bin\iperf3.exe
  C:\cygwin64\bin\cygwin1.dll
    C:\WINDOWS\system32\KERNEL32.dll
      C:\WINDOWS\system32\ntdll.dll
      C:\WINDOWS\system32\KERNELBASE.dll

 

C:\test\iperf3.6_64bit>iperf3.exe -v
iperf 3.6 (cJSON 1.5.2)
CYGWIN_NT-10.0 i5-win 2.10.0(0.325/5/3) 2018-02-02 15:16 x86_64
Optional features available: CPU affinity setting

 

  • Like 1
Link to post
Share on other sites
  • 0
rambo007

Awesome! Thanx! It's working flawlessly for me so far ?

Link to post
Share on other sites
  • 0
+BudMan

Great I will get around to the 32bit version maybe this weekend.. Not sure why anyone would still be using 32bit anyway..

  • Haha 1
Link to post
Share on other sites
  • 0
+BudMan

Thanks... Prob do it this weekend...

Link to post
Share on other sites
  • 0
+BudMan

Ok got 3.7 compiled - had to do the same edit to ossl_typ.h as above

 

budman@i5-win /usr/local/bin
$ cygcheck iperf3.exe
Found: C:\cygwin64\usr\local\bin\iperf3.exe
C:\cygwin64\usr\local\bin\iperf3.exe
  C:\cygwin64\bin\cygwin1.dll
    C:\WINDOWS\system32\KERNEL32.dll
      C:\WINDOWS\system32\ntdll.dll
      C:\WINDOWS\system32\KERNELBASE.dll

budman@i5-win /usr/local/bin
budman@I5-WIN E:\output\iperf3.7_64
$ iperf3.exe -v
iperf 3.7 (cJSON 1.5.2)
CYGWIN_NT-10.0-18362 i5-win 3.0.7-338.x86_64 2019-04-30 18:08 UTC x86_64
Optional features available: CPU affinity setting

The --bidir option is working

budman@I5-WIN E:\output\iperf3.7_64
$ iperf3.exe -c 192.168.9.9 --bidir
warning: Ignoring nonsense TCP MSS -2146716416
Connecting to host 192.168.9.9, port 5201
[  5] local 192.168.9.100 port 53200 connected to 192.168.9.9 port 5201
[  7] local 192.168.9.100 port 53201 connected to 192.168.9.9 port 5201
[ ID][Role] Interval           Transfer     Bitrate
[  5][TX-C]   0.00-1.00   sec  56.6 MBytes   475 Mbits/sec
[  7][RX-C]   0.00-1.00   sec  99.3 MBytes   832 Mbits/sec
[  5][TX-C]   1.00-2.00   sec  42.0 MBytes   352 Mbits/sec
[  7][RX-C]   1.00-2.00   sec   112 MBytes   943 Mbits/sec
[  5][TX-C]   2.00-3.00   sec  52.2 MBytes   438 Mbits/sec
[  7][RX-C]   2.00-3.00   sec   112 MBytes   942 Mbits/sec
[  5][TX-C]   3.00-4.00   sec  56.2 MBytes   472 Mbits/sec
[  7][RX-C]   3.00-4.00   sec   112 MBytes   943 Mbits/sec
[  5][TX-C]   4.00-5.00   sec  58.8 MBytes   493 Mbits/sec
[  7][RX-C]   4.00-5.00   sec   112 MBytes   942 Mbits/sec
[  5][TX-C]   5.00-6.00   sec  24.2 MBytes   203 Mbits/sec
[  7][RX-C]   5.00-6.00   sec   112 MBytes   943 Mbits/sec
[  5][TX-C]   6.00-7.00   sec  53.0 MBytes   445 Mbits/sec
[  7][RX-C]   6.00-7.00   sec   112 MBytes   939 Mbits/sec
[  5][TX-C]   7.00-8.00   sec  69.0 MBytes   579 Mbits/sec
[  7][RX-C]   7.00-8.00   sec   112 MBytes   942 Mbits/sec
[  5][TX-C]   8.00-9.00   sec  26.1 MBytes   219 Mbits/sec
[  7][RX-C]   8.00-9.00   sec   112 MBytes   943 Mbits/sec
[  5][TX-C]   9.00-10.00  sec  62.2 MBytes   522 Mbits/sec
[  7][RX-C]   9.00-10.00  sec   112 MBytes   939 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate
[  5][TX-C]   0.00-10.00  sec   500 MBytes   420 Mbits/sec                  sender
[  5][TX-C]   0.00-10.00  sec   500 MBytes   420 Mbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec  1.09 GBytes   934 Mbits/sec                  sender
[  7][RX-C]   0.00-10.00  sec  1.08 GBytes   931 Mbits/sec                  receiver

iperf Done.

budman@I5-WIN E:\output\iperf3.7_64

 

https://files.budman.pw/iperf3.7_64.zip

 

CRC32: 13EB9AD9
MD5: 96C2C058B0128BEC346BD0D034D7B31E
SHA-1: 83978F54B7EDDA073CC4E865493AA6544862879A
SHA-256: 93FB4641810C06DE554E97FD4E6B44CEFBD8ECB8EA8CFEA3CC550B823C3E89CE

 

 

  • Like 2
Link to post
Share on other sites
  • 0
boxsmiley

thanks budman.  you are awesome.  created account just to say thanks for providing the fix for ossl_typ.h.  

Link to post
Share on other sites
  • 0
+BudMan

Thanks - stick around its good place!  So you were trying to compile it yourself and ran into that issue? And found this thread? Trying to recall where I found the fix myself, I am not any sort of guru at compiling stuff... But I get the basics and can follow instructions ;)

  • Like 1
Link to post
Share on other sites
  • 0
spanjokus

Thank you very much for the current version of the utility.

Link to post
Share on other sites
  • 0
+BudMan

@spanjokus Glad you found it and people are making use of it..  When next version comes out, will be posting here as well.  If you notice next release is out before I do - just mention my name here, and I will notice it for sure and post it up.

Link to post
Share on other sites
  • 0
aflurko

there is upgraded version of Cygwin1.dll:

https://github.com/esnet/iperf/issues/960

and i quote: " There was a bug in the cygwin1.dll that limited the receive buffer size for TCP sends. This caps the throughput on all tools that use cygwin including iperf."

 

 maybe it's worth making an upgrade for your compilation?

  • Like 1
Link to post
Share on other sites
  • 0
+BudMan

Thanks for the info... Will for sure do an update!

Link to post
Share on other sites
  • 0
+BudMan

Ok updated cygwin, did a new compile here is the new update

 

$ iperf3.exe -v
iperf 3.7 (cJSON 1.5.2)
CYGWIN_NT-10.0-18363 i5-win 3.1.4-340.x86_64 2020-02-19 08:49 UTC x86_64
Optional features available: CPU affinity setting

 

https://files.budman.pw/iperf3.7_64_updated_cygwin1dll.zip

CRC32: ABCA3CAA
MD5: C3594A08967FD57BF36F757980480F9D
SHA-1: DF6C8B3D18941DABBC5AB21ACB5844A062620092
SHA-256: B1A14F8B2435AAA98D26F8499DF23BF6532B5F0EA2288DA04E0C28333EDBC48E

edit:  I again had to make the change to ossl_typ.h shown above to get it to compile... My change had gotten over witten with the updated of cygwin.

  • Like 1
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Usama Jawad96
      The first preview of .NET 6 is now live: Here's what you need to know
      by Usama Jawad

      Microsoft announced .NET 5 a few months ago as the first step in the path to .NET unification. The goal is to have a single set of APIs, languages, and tools that you can utilize across multiple platforms. Today, the firm has unveiled the next stepping stone in this journey, which is .NET 6 Preview 1.

      The first preview of .NET 6 brings with it a raft of new features and capabilities. However, first and foremost is that it enables the next bits of .NET unification. Under this plan, while you can use .NET SDK to build mobile apps in Visual Studio and Visual Studio Code, the size of the SDK will actually be smaller because mobile workloads are optional. This capability will be gradually rolled out with .NET 6 releases and will be complete in .NET 7.

      With .NET 6, Microsoft is also leaning towards "open planning" so everyone is aware of the direction the company is headed in. This can be viewed in the Blazor-based app here which has multiple filters that allow you to see the plan most relevant to you.



      Additionally, .NET 6 comes with a new Multi-platform App UI built on top of Xamarin. It is a toolkit that allows developers to get a consistent view of their apps across various platforms, also allowing them to share code. Microsoft states that the focus during .NET 6 releases will be performance, control themes, and "faster developer experiences". Preview 1 currently includes support for Android and iOS. Windows and macOS will be supported in future releases.

      .NET 6 also includes support for developing Blazor desktop apps. This capability is primarily aimed at web developers who want to offer a feature-rich UI in offline desktop apps. Currently, Blazor desktop is being built for .NET apps, but Microsoft has stated that it can be used to build apps in other stacks like Swift as well. As can be ascertained, Blazor is built on top of the Multi-platform App UI, with focus being on providing performance similar to other desktop solutions.

      Another project that the .NET is working on goes by the name of "fast inner loop". The aim of this initiative is to enable faster build time and to develop capabilities that allow developers to skip rebuilding altogether, and just integrate code edits in live processes.



      With .NET 6, Microsoft is investing more in ARM64 support as well. Performance improvements are a key focus area in Preview 1, along with support for Windows Forms and Windows Presentation Framework (WPF). The development team also plans to add support for Windows Desktop app features in .NET 5 once it has enabled and tested them in .NET 6. With regards to Mac, initial support has been added for Apple Silicon ARM64 chips.

      Microsoft also plans to improve containers in .NET 6. Multiple ways to do this include reducing container image size, enhancing the scalability of containers, adding support for Windows process-isolated containers, and optimizing performance, among many others. Based on the current Linux landscape and release strategy, Microsoft has stated that images for .NET 6 will be based on Alpine 3.13, Debian 11, and Ubuntu 20.04. Once the company begins to release new .NET 6 images, this base image version will not change. Debian 10, which has been used as the image in multiple past releases, will be retired.

      The .NET command-line interface (CLI) also has a bunch of new experiences thanks to adoption of the System.CommandLine libraries. These include response files and Directives. Furthermore, math APIs and libraries have been added to .NET 6 too. It includes better support for Windows access control lists (ACLs) as well, with improvements to various relevant methods such as Semaphores and Mutex.

      The .NET thread pool has been redesigned to enhance portability. It will be the standard for .NET releases going forward, and will allow applications to have access to the shared thread pool, regardless of their runtime.

      A major part of .NET 6 Preview 1 is support for Apple Silicon. However, Microsoft has emphasized that this is currently in alpha stage. With this release, both ARM64 and x64 builds for macOS are being released. According to the company, this has been a major effort and as such, it does not plan to release ARM64 versions for earlier releases of .NET. Microsoft has also thanked Apple for all its support in bringing .NET 6 to Apple Silicon.

      That said, there are still some issues with the current release on Apple Silicon. Debugging native .NET apps doesn't currently work for any Visual Studio product. Microsoft plans to add support for this in Preview 3. Other known issues include:

      .NET has not been fully tested on Rosetta 2 emulation, but Microsoft has noted that this is a temporary bridge connected to ARM64 anyway, and will likely not be supported forever by Apple. The Redmond giant plans to support .NET on Macs on these older machines as long as Apple supports them.

      As stated, another focus of this release is also performance improvements. As such, .NET 6 Preview 1 brings enhancements to single file apps, single-file signing on macOS, hardware-accelerated structs, and dynamic PGO. It also includes Crossgen2 - a new iteration of the initial Crossgen tool - which allows for easier code generation and cross-generation development. Currently, the SDK defaults to Crossgen, but will be moving to Crossgen2 in future preview releases.

      .NET 6 will be officially released in November 2021, similar to how .NET 5.0 was released in the same timeframe last year. You can download .NET 6 by heading to this dedicated webpage and find out more details about it in the extensive blog post here. Microsoft has also stated that .NET 6 Preview 1 was tested on Visual Studio 16.9 Preview 4 and Visual Studio for Mac 8.9, so it is recommended that you use these configurations to test it for yourself.

    • By Abhay V
      Google rolling out dark theme for Search on the desktop for some users
      by Abhay Venkatesh



      Google seems to be rolling out a new dark mode for Search on the desktop for some users. A new pop-up message suggesting that “Dark theme is now available has begun showing up for people, based on user posts on Twitter, which was corroborated by folks over at 9to5Google as well. The feature seems to also be showing up for users when accessing Google Search from the desktop in Incognito mode.

      The prompt reportedly redirects users to a setting that lets them choose between light, dark, or system theme. This means that the search engine will adapt to the system theme settings on Windows and macOS, making it a much more streamlined option for those that prefer to switch between themes regularly. However, it is not clear if the rollout is part of an A/B test or an actual staggered release since the feature supposedly gets disabled for some users after a page refresh or when users navigate to image search.

      This isn’t the first time that users have been able to spot dark mode for Search on the web. Back in May last year, the company was testing the theming option on mobile browsers via a hidden flag. Early this year, there were reports of a randomized test with an experience similar to what users are reporting today.

      As for the theming option itself, the company is keeping the experience in line with its mobile apps, which means that the UI adapts a dark grey background color with white text. From the screenshots posted by users, it does not look like there are too many rough edges, although, the theme is applicable only to a few pages.

      The addition of a dark theme for Search on the web will be a welcome addition for those that prefer the theming option, especially when working in dimly lit environments. It will be interesting to see if the Mountain View company expands the rollout of the feature soon or if this is another toe dip in the water to gauge reception from users.

    • By Abhay V
      This week's Edge Dev build adds the option for a simplified right-click menu in PDFs
      by Abhay Venkatesh



      Just like clockwork, Microsoft has released a new Edge build to Dev channel users, bumping up the version to 90.0.789.1. While this is the second Edge 90 build being released for Dev users, it is still light on features, with the build today readying improvements to the right-click context menu for PDFs and adding a management policy for governing how Office files are opened in Edge. Other than that, there are a bunch of fixes to address reliability issues and changed behavior.

      Additionally, the company has also reminded users of the impending end of support for Edge Legacy and has also linked to a post on what steps are to be taken by those that use kiosk mode. The firm has also detailed the new password management features brought by Microsoft Authenticator on mobile and on Chrome via the Microsoft Autofill extension.

      With that out of the way, here is what’s new with today’s Dev channel release:

      As mentioned in the release notes, the simplified right-click menu in PDFs is still rolling out gradually, so the settings to enable it might not be functional for most users for now. It is not clear what the exact changes are either, so users will have to wait for the completion of the rollout.

      As usual, there are fixes to improve the reliability of the browser. Here is the complete list:

      And here is a long list of fixes to address changed behavior, including a bunch of fixes aimed at Progressive Web Apps (PWAs):

      Lastly, there are the known issues that users should be aware of when installing the latest Dev channel build. The list includes a few items that are being tracked for a while now, such as the duplication in favorites and the like:

      As is the case always, the update should be installed in the background without any user intervention. However, you can always head into Settings and hit 'About Microsoft Edge' to force the browser to check for an update.

      As for users in the Beta channel, the company released Edge version 89 to users in that channel last week, bringing features like sync data reset, PDF and autofill improvements, and more. As for Edge for Linux users, there is no word on when that version will receive features like history sync.

    • By LoneWolfSL
      Total War: Warhammer III announced by Creative Assembly, coming this year
      by Pulasthi Ariyasinghe

      The Total War: Warhammer trilogy that Creative Assembly began back in 2016 is concluding this year with the newly revealed third entry. After several teasers from the past few days, publisher Sega announced the latest turn-based and real-time strategy title today with a brand new cinematic trailer, catch it above.

      Total War: Warhammer III will have the conflict expanding to further territories like the Realms of Chaos and Lands of the East. New fantasy races are incoming too, with Kislev and Cathay, as well as Chaos factions Khorne, Nurgle, Slaanesh and Tzeentch. The studio promises to deliver the most diverse array of "legendary heroes, gargantuan monsters, flying creatures and magical powers that the series has ever seen."

      "Our vision, from the start, was to create a series that felt like an incredible journey through this world we all loved," said game director Ian Roxburgh. "The enormous support of our players in ensuring the success of the first two installments has pushed our ambition to new heights, and we can’t wait for everyone to experience it."

      Like in the first two games, Creative Assembly will allow players to combine the maps of the complete trilogy to have one massive campaign. However, this will arrive as a post-launch free update, as the studio's full focus is currently on Total War: Warhammer 3.

      Total War: Warhammer 3 is coming to Windows later this year, with Linux and macOS versions coming soon after. Both Steam and Epic Games Store versions are currently available for pre-order, and Creative Assembly will be bringing the previous two games and all their DLC to the latter store before the latest game's launch.

    • By Abhay V
      Microsoft reportedly planning special virtual events for Windows, gaming, and more
      by Abhay Venkatesh

      Microsoft is reportedly planning to hold a series of special events geared towards its various offerings such as the cloud, gaming, Windows, and security. The Verge reports that the events are expected to be held over the next few months, with the first one slated to take place this week that focuses on Microsoft 365 and the “employee experience”, guessing from a tweet posted by the Microsoft 365 Twitter account.

      While the Redmond giant shares information about its products as part of large conferences such as Build and Ignite, these events are supposedly more specific, product-related ones. It is possible that the company will use these events to share specific roadmaps, launch new products, or just showcase new capabilities added to its products in the various categories.

      With a major Windows 10 redesign – codenamed Sun Valley – expected to begin being tested with Insiders, it will not be surprising to see the Windows event possibly aimed at sharing more information on that front. Windows 10X, the firm’s modern, lightweight OS, is also expected to be launched sometime in the next few months. While rumors suggest that the OS launch will be one without much fanfare, it will be interesting to see if the company leverages a special event to talk about its newest OS offering.

      The firm might also choose to share its plans for first-party games and its xCloud game streaming platform via the events aimed at gaming. Microsoft is also expected to bring Xbox game streaming to Windows sometime this spring, so an event to announce the expansion of that service might make sense.

      The pandemic has forced companies into moving to a virtual setup for its events and product launches, and Microsoft is no exception. It will be interesting to see if these events are a one-time thing, or if the company is experimenting with a pattern for the years to come.