{"id":16721895,"url":"https://github.com/cnuernber/dtype-next","last_synced_at":"2025-05-16T04:07:15.841Z","repository":{"id":37205018,"uuid":"289280001","full_name":"cnuernber/dtype-next","owner":"cnuernber","description":"A Clojure library designed to aid in the implementation of high performance algorithms and systems.","archived":false,"fork":false,"pushed_at":"2025-05-03T14:52:43.000Z","size":4556,"stargazers_count":345,"open_issues_count":11,"forks_count":21,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-03T15:34:00.184Z","etag":null,"topics":["clojure","graal-native","hpc"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cnuernber.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"cnuernber"}},"created_at":"2020-08-21T13:45:09.000Z","updated_at":"2025-05-03T14:52:46.000Z","dependencies_parsed_at":"2024-02-23T16:27:04.385Z","dependency_job_id":"66d96962-e28b-4333-be37-59a21cbe4293","html_url":"https://github.com/cnuernber/dtype-next","commit_stats":{"total_commits":1029,"total_committers":16,"mean_commits":64.3125,"dds":"0.029154518950437303","last_synced_commit":"ca6d016a23b3f788ab01160ddf5a86f2faff8fc6"},"previous_names":[],"tags_count":222,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnuernber%2Fdtype-next","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnuernber%2Fdtype-next/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnuernber%2Fdtype-next/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnuernber%2Fdtype-next/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cnuernber","download_url":"https://codeload.github.com/cnuernber/dtype-next/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254464897,"owners_count":22075571,"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":["clojure","graal-native","hpc"],"created_at":"2024-10-12T22:32:41.317Z","updated_at":"2025-05-16T04:07:10.833Z","avatar_url":"https://github.com/cnuernber.png","language":"Clojure","funding_links":["https://github.com/sponsors/cnuernber"],"categories":[],"sub_categories":[],"readme":"# dtype-next\n\nNext generation high performance Clojure toolkit.\n\n\n[![Clojars Project](https://clojars.org/cnuernber/dtype-next/latest-version.svg)](https://clojars.org/cnuernber/dtype-next)\n![Build Status](https://github.com/cnuernber/dtype-next/actions/workflows/test.yml/badge.svg)\n\nCheckout The:\n\n* [Overview](https://cnuernber.github.io/dtype-next/overview.html)\n* [API Documentation](https://cnuernber.github.io/dtype-next/)\n* Java API [Documentation](https://cnuernber.github.io/dtype-next/javadoc/index.html) and [Sample](https://github.com/cnuernber/dtype-next/blob/master/java_test/java/jtest/Main.java).\n* [Clojure Cheatsheet](https://cnuernber.github.io/dtype-next/cheatsheet.html).\n\n\n## New Functionality\n * [Efficient 1d convolutions, correlations, gaussian correlations](https://cnuernber.github.io/dtype-next/tech.v3.datatype.convolve.html)\n * [Numeric gradient, elemwise difference](https://cnuernber.github.io/dtype-next/tech.v3.datatype.gradient.html)\n * [Variable rolling windows](https://cnuernber.github.io/dtype-next/tech.v3.datatype.rolling.html#var-variable-rolling-window-indexes)\n\n## Description\n\n`dtype-next` provides a unified pathway for dealing with contiguous containers of primitive datatypes such as\nints and floats.  In addition it defines the basis for `array` programming as found in APL or numpy and\na deep Java interface hierarchy with default methods to allow implementing new `array`s painless.  This\ninterface hierarchy integrates with Java Streams, Spliterators, and various members of the java.util.function\npackage.  In addition it extends these concepts to native-heap based containers.\n\n\nThere are namespaces to allow elementwise operations across scalars and arrays, highly optimized reductions\nacross index spaces, and algorithms that operate in index space for use when multiple buffers share\nan index space.\n\n\nThis library forms the numeric basis that underlies the ['tech.ml.dataset'](https://github.com/techascent/tech.ml.dataset)\nsystem.  It also defines a language independent ABI which allows zerocopy to C-based systems\nsuch as [numpy](https://github.com/clj-python/libpython-clj), [OpenCV](https://github.com/techascent/tech.opencv),\n[Julia](https://github.com/cnuernber/libjulia-clj), [TVM](https://github.com/techascent/tvm-clj)\nand [neanderthal](https://github.com/uncomplicate/neanderthal).\n\n\nAdditional targets of this library:\n\n\n*  Small runtime footprint.  This is harder than it looks but the main thing is that\n   the system needs to produce the right answers with as little type specific code as\n   necessary.\n*  Full native memory support.  Malloc, free, memset, memcpy.  Just the basics but\n   guaranteed to be available.\n*  Graal Native support.\n*  Support for JDK-8 through JDK-17+ - JDK-16 is *no longer* supported.  For jdk-17 usage, please see\n   project.clj for required flags.\n*  [Blogpost](https://techascent.com/blog/next-gen-native.html), [example](examples/clj-ffi) and [involved example](https://github.com/cnuernber/avclj) of using the FFI architecture across JNA, JDK-16 and GraalNative.\n\n\n## Native Test\n\n* In order to get mmap working on the native test I had to grab the larray .so from the\n  uberjar and load it manually.  Not a big issue at the end of the day but I was having\n  problems getting graal native to package resources.\n\nUse the scripts to get graal and compile test.  The code is located under native-test; so far\nreader/writing/copying all work for native and jvm heap datasets.  Tensors work.\n\n\n## Graal Native\n\n* https://github.com/lread/clj-graal-docs\n* https://github.com/borkdude/clojure-rust-graalvm\n* https://github.com/epiccastle/spire\n* https://github.com/babashka/babashka-sql-pods\n\n## Test Dependencies\n\n* Intel® Math Kernel Library - Use your system package manager to install `libmkl-rt`\n\n## License\n\nCopyright © 2020 Chris Nuernberger\n\nThis program and the accompanying materials are made available under the\nterms of the Eclipse Public License 2.0 which is available at\nhttp://www.eclipse.org/legal/epl-2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnuernber%2Fdtype-next","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcnuernber%2Fdtype-next","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnuernber%2Fdtype-next/lists"}