.Net library consisting of three classes for simplified asynchronous I/O (AsyncStream), using alternate data streams (AlternateStreams), and efficient stream peeking and seeking (BetterBufferedStream). BetterStreams can easily improve the performance of new or existing applications, sometimes dramatically, with as little as a single-line change to the code. AsyncStream wraps an existing stream and provides asynchronous I/O via the standard Read(), ReadByte(), Write(), and WriteByte() methods; if called on the wrapped stream directly these would require waiting for I/O to the underlying device (such as a disk) but the AsyncStream asynchronously and automatically fills or flushes its internal buffer from or to the wrapped stream using a background thread and will never block so long as sufficient bytes are available in the buffer. Even if your application logic is already built around synchronous I/O, making it asynchronous typically requires nothing more than wrapping the original stream in an AsyncStream. AsyncStreams also provide elegant exception handling, properties for fine-tuning performance and behavior when desired, and, like BetterBufferedStreams, efficient seeking. AlternateStreams enables you to read, write, delete, create and list alternate data streams (ADS) in an NTFS file. Under NTFS, each file has a "main" unnamed stream (this is the one the Framework's file I/O classes manipulate) as well as zero or more "alternate" named streams; for example, Internet Explorer uses an alternate stream named "Zone.Identifier" to record which security zone a downloaded file came from. Aside from conveniently storing metadata, they can also be used to create "compound storage" for application data; instead of, for example, sequentially serializing ten objects to the "main" fie stream (requiring the entire file to be rewritten if any but the last object changes) each object can be serialized to its own, individually modifiable alternate stream.
VERSION HISTORY
- Version 1.0 posted on 2007-05-27
Program Details
- Category: Development > Components & Libraries
- Publisher: Jeff Pasternack
- License: Free Trial
- Price: $59.00
- Version: 1.0
- Platform: windows
EULA
BetterStreams Academic/Evaluation License Agreement This license agreement ("License") is a legal agreement between you (or your company, if you are authorized to act on its behalf and bind it to this agreeement) as the "Licensee" and Jeff Pasternack ("Licensor") for the BetterStreams library ("BetterStreams"), including all accompanying software, source code, documentation, other accompanying media, and any future or updated versions of these provided by Licensor. 0. Preamble This Academic/Evaluation license is free, and significantly more restrictive than the Developer license sold by the Licensor. It prohibits distribution of both the BetterStreams.dll library and any software (compiled or as source) linking to or otherwise using it, and permits use of BetterStreams to develop only applications that will be used solely by their original author for non-profit academic research or evaluation purposes. For non-Academics (Academics are defined as students and faculty of accredited colleges and universities) this License expires 30 days after you agree to it, at which time you must either purchase a Developer license or destroy all copies of the software. 1. Grant of License Licensor grants the Licensee a non-transferable, non-exclusive license to BetterStreams to: a) Install BetterStreams on a single computer for use by a single person. b) Create one copy for backup purposes c) Use BetterStreams to develop applications used solely by you for non-profit academic research or to evaluate BetterStreams pursuant to deciding whether or not you would like to purchase a Developer license. 2. Limitations and Restrictions on License a) Licensee may not use BetterStreams to develop libraries, components, tools or software of any kind that provides, in whole or in part, similar functionality to BetterStreams. b) Other than as explicitly permitted above in the Grant of License, Licensee may not in any way reproduce, copy, distribute or share BetterStreams in whole or in part. c) Licensee may not use BetterStreams for any purpose prohibited by law. d) Licensee may not distribute BetterStreams or any part thereof, nor may the Licensee distribute any software that links to or otherwise uses BetterStreams. e) Licensee may not allow others to use BetterStreams or any applications developed with BetterStreams f) Licensee may not use BetterStreams to develop applications that are not for non-profit, academic research or evaluation of BetterStreams. g) If the Licensee is not a student or faculty member at an accredited college or university, this license automatically terminates after 30 days at which time all copies of BetterStreams components (including, but not limited to, BetterStreams.dll, documentation, source code, and other media) must be destroyed. 3. You assert and agree that you have not previously been granted a license of any kind to use BetterStreams. 4. Intellectual Property Rights All intellectual property rights to BetterStreams and any accompanying media are kept and owned by Licensor. BetterStreams is protected by United States copyright law and international treaties. The Licensee may distribute BetterStreams.dll only when done in pursuance of a binding license agreement that is, at minimum, as protective of the Licensor and BetterStreams as this License. The Licensee must make reasonable efforts to prevent violations of such agreements as they concern Licensor and BetterStreams. 5. Support Licensor is not obligated to provide support or other assistance for BetterStreams in any form. 6. No Reverse-Engineering You may not disassemble, reverse-engineer, decompile, or otherwise attempt to obtain information regarding BetterStreams internals, methods or construction. 7. Disclaimer of Warranty THERE IS NO WARRANTY FOR BETTERSTREAMS, TO THE EXTENT PERMITTED BY APPLICABLE LAW. BETTERSTREAMS IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF BETTERSTREAMS IS WITH YOU, THE LICENSEE. SHOULD BETTERSTREAMS PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, CORRECTION, AND DAMAGES OF ANY KIND THAT OCCUR AS A RESULT, INCLUDING BUT NOT LIMITED TO LOSS OF REVENUE OR POTENTIAL REVENUE AND LOSS OF DATA. NO STATEMENT OR CLAIM, WRITTEN OR OTHERWISE, FROM THE LICENSOR OR HIS AGENTS SHALL CREATE A WARRANTY OF ANY KIND. 8. Limitation of Liability IN NO EVENT OR CIRCUMSTANCE WILL LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE BETTERSTREAMS (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF BETTERSTREAMS TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT SHALL LICENSORS TOTAL LIABILITY FROM OR RELATING TO BETTERSTREAMS OR THIS LICENSE EXCEED THE AMOUNT PAID BY THE LICENSEE FOR THIS LICENSE, EXCEPT WHERE SUCH LIMITATION OR EXCLUSION IS PROHIBITED BY LAW. 9. Termination Without limitation to other rights of Licensor, this License to use BetterStreams is automatically terminated and revoked if you fail to completely abide by the terms and conditions of this License. If this should occur you must destroy all copies of BetterStreams and its components, including (but not limited to) backups, source code, documentation, software and other associated media. 10. Governing Law This License shall be governed by the laws of California as applicable to contracts made in California between residents of California. This License supercedes and is exclusive to any other agreements or statements, written or otherwise, between Licensee and Licensor. 11. General In the event that any provision of this License is determined to be invalid, void, or unenforcable, such provision shall be removed from this License without effect or impairment of any other remaining provisions of this License. 12. Amendments This License may be modified only when done in writing and signed by both Licensee and Licensor.