Hi Sven,
�That's a really really news.
�I look forward when we will reach a stable point for Ocean to use Zodiac on top of it.
�FYI, Ocean is a re-implementation of Sockets (Netnameresolver, IpAddress, ....).
Cheers,
#Luc
Hi,
I would like to announce Zodiac, the project created in response to
� � � �http://forum.world.st/WebClient-for-1-2-2-tt3485946.html#a3503921
according to the plan described in
� � � �http://forum.world.st/SSL-HTTPS-SecureSocketStream-SSLSession-for-Pharo-Squeak-and-other-Smalltalk-implementations-tc3517404.html#a3517719
You can follow the development by looking at the code in
� � � �http://www.squeaksource.com/Zodiac.html
Here is the first delivery: a new (binary) socket stream implementation.
Warning: this is of course not yet code for general consumption, use the source and the comments. This is a proof of concept.
This package has no further dependencies and does not add anything to system classes, it is thus safe to load.
There are four stream classes, ZdcAbstractSocketStream, ZdcSimpleSocketStream, ZdcOptimizedSocketStream and ZdcSocketStream, inheriting from each other, adding successively more optimized implementations of the standard Smalltalk stream primitives. There is one helper class, ZdcIOBuffer to help in managing read and write buffers inside the streams. The interface towards Socket is also quite small (i.e. only a very small amount of the functionality in Socket is used).
The 48 units tests as well as the functional test (see further) are all green on Pharo 1.2.x and 1.3 as well as on Squeak 4.2.
The functional test is the following: Zinc HTTP Components recently got a its ZnNetworkingUtils class turned into a socket stream factory. By loading the new package Zinc-Zodiac from the ZincHTTPComponents repository, you can ask Zn to use the new socket stream implementation, like this:
� � � �ZnNetworkingUtils default: ZnZodiacNetworkingUtils new.
To reset, just do:
� � � �ZnNetworkingUtils default: nil.
The cool thing is: all of Zn's 151 unit tests, most doing actual HTTP client and server interactions (some over the internet) succeed using the new Zodiac socket stream implementation.
Enjoy!
Sven