Open Source

Gracenote's technical staff has developed many great technologies, products, and services over the years. Much of this is embodied in software that has, up to now, been considered proprietary to the company. However, there is a lot of Gracenote software that has broad utility for the software community at large, and need not be kept closed. Gracenote has created an open source program in an effort to provide a means for such software to be made available to the community, with few terms and conditions in the hope that such software will find broad acceptance. All software released as open source has been utilized in Gracenote products or services and is believed to be of high quality and utility.

Each item offered as part of the Gracenote open source program is championed by the engineers who would like to see their code used by others in as many programs or products as possible. On their own initiative, engineers polish their work and guide it through the process Gracenote has established to ensure that only excellent software is published as open source works. Authors are given full credit, and may also post the software for distribution on other sites and forums at their discretion. Questions, enhancements, or bugs are reported to the author, who may respond as they see fit.

The License

The Gracenote Open Source License (GOSL) v1.0 is a short, simple, nonburdensome license that is intended to foster the adoption of source code released by Gracenote. It is a nonviral license that allows you to use Gracenote source code any way you like, without restriction, so long as you include the license document in any product that includes Gracenote source code. There are other important points to be aware of, but this is the key feature of the license. Please read the license text carefully before using Gracenote open source products.

The license is included in all open source packages released by Gracenote. It can also be found at the following link: Open Source License

The Packages

Concur 1.0.1: An extremely scalable multithreaded memory allocator

Concur is a drop-in replacement for malloc() and other commonly used memory allocation functions, designed for use in persistent multithreaded applications. It employs several novel concepts to achieve never before seen thread scalability in multiprocessor systems.

Download concur-1.0.1.tar.gz (300KB)
Package MD5 checksum: 017bae38d7c8c6727fe4ec38aecbcdd2

Messaging Framework: A Java API Framework

Messaging Framework is a Java API Framework that enables data delivery and synchronization between various kinds of information repositories. Messaging Framework can be used for near real-time data requests as well as for batch oriented information delivery.

The Framework implements three major abstracts (sub-frameworks) that are implemented as pluggable, configurable and extendable components:

  1. Adapter - technology connector to data storage (DB, FTP, file system, SMTP, web service, etc.).
  2. Transformer – data mapping framework for data transformation between source and destination resources (RecordSet, text file, XML, etc.)
  3. Messenger - data transfer controller (per application) that manages specific instance of data synchronization or request.
All of the sub-frameworks are wrapped up as an Apache/Tomcat application (with minimal web interface) which monitors, manages and reports the messengers’ status and performance.

Download MessagingFrameworkDistribution.zip (29MB)
Package MD5 checksum: 6ef70f8aff65b32dccb3e89c5234af5e