A Rust solution to Gunnar Morling's One Billion Row Challenge.
Written as a coding challenge for me, not as a genuine submission, so rules shall not apply.
$ ./scripts/create_measurements.sh billion # Or --help for more details
$ cargo run -- measurements_1000000000.txt # Or --help for more details
The generator requires OpenJDK 21.
As of release 0.1.1, this takes about 90 +/- 0.5 seconds to run on my system (Ubuntu 24.04 thru WSL on an i5-13600k, 980 Pro 1TB, and 2x8GB DDR5 4800MT CL40). Off the top of my head, this is O(N * log(N)) time complexity.
onebrc is a part of no_utils. no_utils is licensed under the GNU Affero General Public License version 3, or (at your option) any later version. You should have received a copy of the GNU Affero General Public License along with no_utils, found in ../../LICENSE. If not, see <https://www.gnu.org/licenses/>.
onebrc contains software originally developed by Gunnar Morling and the One Billion Row Challenge contributors, licensed under the Apache License, Version 2.0. You may obtain a copy of this license at <http://www.apache.org/licenses/LICENSE-2.0>.
The following files contain code from the One Billion Row Challenge, licensed under the terms of the Apache License, Version 2.0: