Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/novabyte/grizzly-blink
Grizzly NIO framework filters to process the Blink protocol serialized messages.
https://github.com/novabyte/grizzly-blink
Last synced: 2 months ago
JSON representation
Grizzly NIO framework filters to process the Blink protocol serialized messages.
- Host: GitHub
- URL: https://github.com/novabyte/grizzly-blink
- Owner: novabyte
- License: apache-2.0
- Created: 2013-09-05T17:54:28.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-09-08T13:07:18.000Z (over 11 years ago)
- Last Synced: 2023-07-05T03:04:44.119Z (over 1 year ago)
- Language: Java
- Size: 328 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Grizzly-Blink
=============[Grizzly NIO framework](http://grizzly.java.net/) filters to process the
[Blink](http://blinkprotocol.org/) protocol serialized messages.Grizzly-Blink is created and maintained by Chris Molozian (@novabyte).
Code licensed under the [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0).
Documentation licensed under [CC BY 3.0](http://creativecommons.org/licenses/by/3.0/).## Usage ##
Grizzly-Blink is available on [Maven Central](http://search.maven.org/).
```xml
me.cmoz.grizzly
grizzly-blink
1.0.0```
If you're not using Maven (or a dependency resolver that's compatible with Maven
repositories), you can download the JARs you need for your project from
Maven Central.### Filter Types ###
At the moment there is only one filter to choose from: __BlinkCompactFilter__.
This filter implements the [Blink Compact](http://blog.blinkprotocol.org/2013/02/blink-native-binary-format-introduction.html)
protocol.There are future plans to add support for the __Blink Native__ version of the
Blink protocol specification once support for it is added to
[jblink](https://github.com/pantor-engineering/jblink).## Example ##
The filter needs a `Schema` type to use to encode and decode messages.
The example below demonstrates the
[`Hello` protocol](https://github.com/novabyte/grizzly-blink/tree/master/src/test/blink/Hello.blink),
all messages sent/received by the filter chain will (de)serialize to the `Hello`
protocol format:```java
final Schema schema = new Schema();
SchemaReader.readFromString(
"namespace HelloSpec\n" +
"Hello/1 ->\n" +
" string Greeting", schema);
schema.finalizeSchema();final FilterChainBuilder serverFilterBuilder = FilterChainBuilder.stateless()
.add(new TransportFilter())
.add(new BlinkCompactFilter(schema, "some.package.for.blink.code"))
```For more detailed examples of how to integrate this filter into your code have a
look at the [test cases](https://github.com/novabyte/grizzly-blink/tree/master/src/test/java/me/cmoz/grizzly/blink).## Developer Notes ##
The codebase requires the [Gradle](http://gradle.org) build tool at version
`1.6+` and the Java compiler at version `1.6.0` or greater.The main external dependency for the project is [Grizzly NIO](http://grizzly.java.net/),
at `2.3.5` or greater. At the moment [jblink](https://github.com/pantor-engineering/jblink)
is being bundled within this library until it's packaged properly and available
on [Maven Central](http://search.maven.org/).For a full list of dependencies see the [build script](https://github.com/novabyte/grizzly-blink/blob/master/build.gradle).
All dependencies are downloaded by Gradle during the build process.### Building the codebase ###
The codebase requires [NodeJS](http://nodejs.org/) to use the __blinkc__
compiler, it generates source files that map the protocol specification to Java
(similarly to how Protobuf-Java works). You'll also need to clone the repository
with all git submodules to include the `blinkc.js` dependency:```
git clone --recursive git://github.com/novabyte/grizzly-blink.git
```A list of all possible build targets can be displayed by Gradle with
`gradle tasks`.In a regular write-compile-test cycle use `gradle test`.
A list of all project dependencies can be displayed by Gradle with
`gradle dependencies`.It is recommended to run Gradle with the
[Build Daemon](http://docs.codehaus.org/display/GRADLE/Gradle+Build+Daemon)
enabled to improve performance. e.g. `gradle --daemon` once the daemon is
running it can be stopped with `gradle --stop`.## Contribute ##
All contributions to the documentation and the codebase are very welcome. Feel
free to open issues on the tracker wherever the documentation needs improving.Also, pull requests are always welcome! `:)`