Read Me for TomTom SpeedTools Library
Copyright (C) 2012-2017, TomTom International BV. All rights reserved.
SpeedTools is a collection of generic utilities, originally developed by Rijn Buve, Ruud Diterwich, Daan van Dijk and Andreas Wuest for a large commercial project.
The library was created to develop highly scalable web services, using Typesafe Akka, Google Guice and MongoDB, but many of the tools are usable in other contexts as well.
For documentation on what this library offers, have a look at the
directory, which is the entry point for the site documentation. It contains a list of all
modules and APIs.
You can view the general documentation here:
Or have a look at the JavaDoc API documentation at:
The versioning scheme of the library starts at 3.0.0, because earlier releases exist were disclosed within TomTom only. From version 3.0.0 TomTom decided to contribute this library under the Apache License 2.0 to the open source community.
The test coverage of the project is unevenly distributed. Some of the modules have excellent
test coverage in units tests, others lag a bit behind, or cannot be run without running, for example,
a local MongoDB instance, or having access to secret API keys. Such unit tests have been marked
@Ignore in the source tree, which brings the test coverage down. We welcome initiatives to
increase the test coverage further. Most of the original code was suspect to strict code
There is an additional project
speedtools-examples with real-life examples
of how to use the SpeedTools library. Check it out at
TomTom International BV
PS. For questions, issues and other remarks, you can contact me via email, or send a tweet to @rijnb.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Using Git and
It's good practice to set up a personal global
.gitignore file on your machine which filters a number of files
on your file systems that you do not wish to submit to the Git repository. You can set up your own global
~/.gitignore file by executing:
git config --global core.excludesfile ~/.gitignore
In general, add the following file types to
~/.gitignore (each entry should be on a separate line):
*.com *.class *.dll *.exe *.o *.so *.log *.sql *.sqlite *.tlog *.epoch *.swp *.hprof *.hprof.index *.releaseBackup *~
If you're using a Mac, filter:
If you're using IntelliJ IDEA, filter:
*.iml *.iws .idea/
If you're using Eclips, filter:
.classpath .project .settings .cache
If you're using NetBeans, filter:
.gitignore file in the Git repository itself to reflect those file only that are produced by executing
regular compile, build or release commands, such as:
Bug Reports and New Feature Requests
If you encounter any problems with this library, don't hesitate to use the
Issues session to file your issues.
Normally, one of our developers should be able to comment on them and fix.