Releases: UWNetworksLab/uProxy-lib
v26.1.0: Merge pull request #164 from uProxy/dborkan-metrics
uproxy-networking merge
New and notable:
- now includes all code from uproxy-networking, obsoleting that repository
Requirified uProxy Lib
uProxy lib is now using require & browserify.
Details of the updated build system are here:
https://docs.google.com/document/d/1H3ac_gZFJfhUGyumCbAKhXSa-_UsusDmsAUqXe4h-JQ/edit
Note: there is now a setup.sh script (installs all needed dependencies form npm, bower, tsd, and sets up the third_party code in build/); install instructions have been updated too. The new paths for distribution code is: build/dist/
v14.0.0
v10.0.2 - PeerConnection support ArrayBuffers over DataChannels (& a custom freedom branch binding)
https://github.com/uProxy/uproxy-lib/tree/v10.0.2
https://www.npmjs.org/package/uproxy-lib/10.0.2
Main changes:
- Uses fixed branches of freedom (for config, debugging, and tcp sockets)
- Includes a prepublish script, so you can't accidentally publish totally borken stuff
- Better comments for array buffer functions in declaration file
- Array buffer util for chunking and new tests for chunking/concat
- New typescript declaration file for freedom tcp error constants so you know what tcp function can raise what error.
- More comments link to the github issue.
- peerconnection has a global table of active peer connection that are in the top level environment to aid debugging.
- data channel's chunking of arrays has been simplified
- data channel's correctly handle array buffers now.
- Sample chat apps have been simplified a little.
- Bugfix to common-build-rules to avoid compilation of samples with specs.
- typescript src is now correctly included for sourcemaps to work in sample apps.
Upgrade hints:
- arraybuffers is now a dependency of webrtc so any code you have that uses webrtc/* should make sure that it includes arraybuffers. e.g. add a line like this:
<script src='lib/arraybuffers/arraybuffers.js'></script>to your HTML file of your sample app. See uproxy-lib/src/freedom/samples/freedomchat-chromeapp/main.html
for an example. - Array buffer chunking uses ArrayBuffer.slice, for unit tests, include the array buffer slice adapter ("arraybuffer-slice": "~0.1.2" from the npm package deps)
These enable my new networking socks-rtc-net stack to work (UWNetworksLab/uProxy-networking#101). :)
New directory layout for freedom, improved samples, support for secure sockets, better logging
Main changes:
- There is now a "freedom" directory and the typing files for freedom code is in a subdirectory called "typings" (following the DefinitelyTyped convention).
- The freedom file to use is now: "freedom-for-*-for-uproxy.js"
- Note: freedom file is self contained. It depends on the environment having some background code; you can see an example here for what is needed.
- Consolidated use of Shanjian's logging (code now uses "log.debug(s:string)", "log.info(s:string)", "log.warn(s:string)", and "log.info(s:error)")
- Cleaned up code for sample apps (when you run them, you'll see better logging output, as well as a single logged peerconnection creation function).
- Uses freedom-for-chrome 0.3
- Requires new chrome app permissions, see this example.
- Provides a 'secure' function for tcp sockets
- Makes freedom logging available to freedom modules (see freedom wiki on logging)
- editor_support/sublime_text now has a project file to make sublime_text for editing uproxy easier.
- tools directory contains a handy script for grunt inclusion (don't depend on the main Gruntfile, depend on the one in tools). This provides a common building structure for typescript code, samples, and for copying non-typescript files into the appropriate directory. See the section on code layout in the coding guide.
How to upgrade:
- Fix paths from "freedom__/_" to "freedom/typings/*"
- Update any chrome app permissions if you use sockets.
- Use the freedom-for-*-for-uproxy from the freedom directory.
- If your Gruntfile previously dependent on the uproxy-lib Gruntfile, make it now require from tools/common-grunt-rules.js
Things to do in time:
- change the dbg/dbgWarn/dbgError and any console.log calls to using the new logging interface.
[ if you think that's 9 is a big number; read about releases and semantic versioning in our coding guide, semantic versioning is smart and cool, and we use it. ]
There are many plans to make this better, e.g. consolidate our logging interface with Freedom's; but it's a good step forward in usability, features, and directory layout.
provides logger implemented as freedom custom api
provides logger implemented as freedom custom api