Writers Parent

Writers Parent POM

License

License

MIT
GroupId

GroupId

com.github.marschall
ArtifactId

ArtifactId

writers-parent
Last Version

Last Version

0.2.0
Release Date

Release Date

Type

Type

pom
Description

Description

Writers Parent
Writers Parent POM
Project URL

Project URL

https://github.com/marschall/writers
Source Code Management

Source Code Management

https://github.com/marschall/writers

Download writers-parent

Filename Size
writers-parent-0.2.0.pom 8 KB
Browse

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.marschall/writers-parent/ -->
<dependency>
    <groupId>com.github.marschall</groupId>
    <artifactId>writers-parent</artifactId>
    <version>0.2.0</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/com.github.marschall/writers-parent/
implementation 'com.github.marschall:writers-parent:0.2.0'
// https://jarcasting.com/artifacts/com.github.marschall/writers-parent/
implementation ("com.github.marschall:writers-parent:0.2.0")
'com.github.marschall:writers-parent:pom:0.2.0'
<dependency org="com.github.marschall" name="writers-parent" rev="0.2.0">
  <artifact name="writers-parent" type="pom" />
</dependency>
@Grapes(
@Grab(group='com.github.marschall', module='writers-parent', version='0.2.0')
)
libraryDependencies += "com.github.marschall" % "writers-parent" % "0.2.0"
[com.github.marschall/writers-parent "0.2.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

  • writers
  • writers-benchmark

Writers Maven Central Javadocs

Implementations of java.io.Writer with different trade-offs.

java.io.OutputStreamWriter is very flexible and supports any encoding. However its use of sun.nio.cs.StreamEncoder can result in a noticeable overhead for small writes. It allocates a few temporary objects which for small writes can be noticeable. By addressing only special cases we can make optimizations based on different trade-offs.

Currently we only offer the following two classes:

  • com.github.marschall.writers.AsciiOutputStreamWriter, only supports US-ASCII.
    • does not allocate any objects
    • thread-safe
  • com.github.marschall.writers.BufferedAsciiOutputStreamWriter, only supports US-ASCII but also buffers like a java.io.BufferedOutputStream. This can result in more efficient writes than using com.github.marschall.writers.AsciiOutputStreamWriter with java.io.BufferedOutputStream.
    • does not allocate any objects beyond the initial byte[], the #write and #append methods do not allocate memory
    • uses bulk array copy methods on Java 9+
    • not thread-safe

This project requires Java 11.

Versions

Version
0.2.0
0.1.1
0.1.0