{"id":20779638,"url":"https://github.com/smartlogic/quantlib_test","last_synced_at":"2026-04-21T15:32:00.092Z","repository":{"id":27292292,"uuid":"30766029","full_name":"smartlogic/quantlib_test","owner":"smartlogic","description":"Experiment with QuantLib C++ code and Ruby FFI","archived":false,"fork":false,"pushed_at":"2015-02-13T16:56:57.000Z","size":108,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-07T02:39:50.248Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smartlogic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-13T16:56:42.000Z","updated_at":"2015-02-13T17:27:24.000Z","dependencies_parsed_at":"2022-09-02T04:41:15.880Z","dependency_job_id":null,"html_url":"https://github.com/smartlogic/quantlib_test","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/smartlogic%2Fquantlib_test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartlogic%2Fquantlib_test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartlogic%2Fquantlib_test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartlogic%2Fquantlib_test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smartlogic","download_url":"https://codeload.github.com/smartlogic/quantlib_test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243120405,"owners_count":20239466,"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-11-17T13:29:05.184Z","updated_at":"2026-04-21T15:31:55.061Z","avatar_url":"https://github.com/smartlogic.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Custom QuantLib C++ Code accessed via Ruby and FFI\n\n1. `bundle install`\n1. install quantlib `brew install quantlib`\n1. install boost (was installed by brew if you used that)\n1. `make all`\n1. `ruby test.rb`\n\n# Walkthrough of files provided\n\n## test_quantlib.h\n\nDeclares the function that FFI will invoke, as well as the return value \nstructure that the function will return.\n\nIt also defines them as external C functions so that they are not name mangled \nby the C++ compiler, so that FFI can invoke them.\n\n## test_quantlib.cc\n\nThe sample quantlib code, implementation of the function defined in the header \nfile\n\n## quantlib.rb\n\nThe FFI module that attaches to the shared library made by the linker.\n\n## test.rb\n\nUses the FFI module to invoke the shared library\n\n# Walkthrough of generated files\n\n## test_quantlib.o\n\nCompiled output file from the test_quantlib.cc compilation\n\n## test_quantlib.so\n\nThe output of the linking phase, the test_quantlib.o file linked to the boost \nand quantlib libraries, and created as a shared library file that can be loaded \nby FFI\n\n# What you see when you run test.rb\n\nThe Ruby code passes in 2 params, just to prove that it works. They are output \nby the C++ code to stdout.\n\nThe majority of the ouptut is output to stdout from the C++ code.\n\nThe seconds spent in the C++ code for quantlib is recorded in the C++ code and \npassed back in the ReturnValue struct. It is then output by Ruby.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmartlogic%2Fquantlib_test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmartlogic%2Fquantlib_test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmartlogic%2Fquantlib_test/lists"}