{"id":17034502,"url":"https://github.com/randomir/qrbg-cpp","last_synced_at":"2025-03-22T22:17:23.108Z","repository":{"id":6751141,"uuid":"7997576","full_name":"randomir/qrbg-cpp","owner":"randomir","description":"QRBG Service C++ client library","archived":false,"fork":false,"pushed_at":"2013-02-07T22:39:50.000Z","size":215,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-28T01:48:24.514Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/randomir.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-03T22:28:36.000Z","updated_at":"2016-07-14T08:33:35.000Z","dependencies_parsed_at":"2022-08-26T04:20:42.745Z","dependency_job_id":null,"html_url":"https://github.com/randomir/qrbg-cpp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/randomir%2Fqrbg-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/randomir%2Fqrbg-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/randomir%2Fqrbg-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/randomir%2Fqrbg-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/randomir","download_url":"https://codeload.github.com/randomir/qrbg-cpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245026042,"owners_count":20549073,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T08:43:48.564Z","updated_at":"2025-03-22T22:17:23.068Z","avatar_url":"https://github.com/randomir.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Quantum Random Bit Generator Service\n====================================\n\nThe work on `QRBG Service`_ has been motivated by scientific necessity\n(primarily of local scientific community) of running various simulations, whose\nresults are often greatly affected by quality (distribution, nondeterminism,\nentropy, etc.) of used random numbers. Since true random numbers are impossible\nto generate with a finite state machine (such as today's computers), scientists\nare forced to either use specialized expensive hardware number generators, or,\nmore frequently, to content themselves with suboptimal solutions (like\npseudo-random numbers generators). \n\nThe Service has begun as a result of an attempt to fulfill the scientists' needs\nfor quality random numbers, but has now grown to a global (public) high-quality\nrandom numbers service. \n\nDesign requirements for our service [1]_ were:\n\n- true randomness of data served (high per-bit-entropy of served data) \n- high speed of data generation and serving \n- high availability of the service (including easy and transparent access to\n  random data),\n- great robustness of the service, and \n- high security for users that require it. \n\nSo far, all these features, except the last one, have been implemented. And the\nsolution developed tops other currently available random number acquisition\nmethods (including existing Internet services) in at least one of the numbered\ncategories. \n\nTo ensure high-quality of the supplied random numbers (true randomness) and high\nspeed of serving, we have used fast non-deterministic, stand-alone hardware\nnumber generator relying on photonic emission in semiconductors. The used\n`Quantum Random Bit Generator`_ was previously developed at Rudjer Boskovic\nInstitute, in Laboratory for Stochastic Signals and Process Research.\n\n\nQRBG C++ Client\n---------------\n\nThe C++ interface to QRBG service is provided through ``QRBG`` class, as defined\nin `src`_. The library can be compiled together with your source, or it can be\ninstalled as a shared Linux library (``libqrbg``) and linked dynamically.\n\n\nInstallation\n------------\n\nThe easiest way to install QRBG as a shared library (on 64-bit Linux\narchitectures) is from packages in ``dist/``. On Debian/Ubuntu::\n\n    $ dpkg -i dist/libqrbg_0.4.0-1_amd64.deb\n\nOn RHEL/Fedora/CentOS/SUSE/Mandriva/SciLinux use the RPM package, e.g.::\n\n    $ yum install dist/libqrbg-0.4.0-2.x86_64.rpm\n\nOn other configurations, you can install from source, in which case you should\nhave ``autotools`` and ``libtool``. To build and install, type::\n\n   $ ./autogen.sh\n   $ ./configure \u0026\u0026 make\n   $ sudo make install\n\n\nExample Usage\n-------------\n\n.. code-block:: c++\n\n    #include \"QRBG.h\"\n    \n    int main() {\n        QRBG rndService;\n        rndService.defineServer(\"random.irb.hr\", 1227);\n        rndService.defineUser(\"username\", \"password\");\n    \n        int a = rndService.getInt();\n        double b = rndService.getDouble();\n    }\n\nFor more examples, see `test`_.\n\n\nBuild\n-----\n\nYou can embed the library, or link it with a system-wide shared lib. To\nillustrate, we'll build ``example0.cpp``::\n\n    $ cd test\n    $ g++ -Wall -O6 example0.cpp ../src/*.cpp -I ../src -o example0.out\n\nor, use ``make``::\n\n    $ make linked\n\nTo link it with shared library::\n\n    $ g++ -Wall -O6 example0.cpp -l qrbgcpp  -o example0.out\n\nor::\n\n    $ make shared\n\n\nCopyright and License\n---------------------\n\nQRBG service C++ library is Copyright (c) 2007 Radomir Stevanovic and Rudjer\nBoskovic Institute. Licensed under the MIT license. See the LICENSE file for\nfull details.\n\n\n.. _`QRBG Service`: http://random.irb.hr/\n\n.. _`Quantum Random Bit Generator`: http://qrbg.irb.hr/\n\n.. [1] R. Stevanovic, G. Topic, K. Skala, M. Stipcevic and B.M. Rogina,\n       \"Quantum Random Bit Generator Service for Monte Carlo and Other\n       Stochastic Simulations,\" in Lecture Notes in Computer Science, Vol. 4818,\n       I. Lirkov, S. Margenov, J. Wasniewski (Eds.), Springer-Verlag: Berlin\n       Heidelberg, 2008, pp. 508-515. (http://www.springer.com/computer/theoretical+computer+science/book/978-3-540-78825-6)\n\n.. _`src`: https://github.com/randomir/qrbg-cpp/tree/master/src\n\n.. _`test`: https://github.com/randomir/qrbg-cpp/tree/master/test\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandomir%2Fqrbg-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frandomir%2Fqrbg-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandomir%2Fqrbg-cpp/lists"}