diff --git a/src/components/fundable/MenuSideBar.tsx b/src/components/fundable/MenuSideBar.tsx index 6afcffbc..e4c4684f 100644 --- a/src/components/fundable/MenuSideBar.tsx +++ b/src/components/fundable/MenuSideBar.tsx @@ -5,7 +5,8 @@ import styles from "./styles.module.css"; const sections = [ { id: 'jupyter-ecosystem', label: 'Jupyter ecosystem' }, { id: 'package-management', label: 'Package management' }, - { id: 'scientific-computing', label: 'Scientific computing' } + { id: 'scientific-computing', label: 'Scientific computing' }, + { id: 'apache-arrow', label: 'Apache Arrow and Parquet' } ]; export default function MenuSideBar() { diff --git a/src/components/fundable/descriptions/BinaryViewInArrowCpp.md b/src/components/fundable/descriptions/BinaryViewInArrowCpp.md new file mode 100644 index 00000000..5d39f9b7 --- /dev/null +++ b/src/components/fundable/descriptions/BinaryViewInArrowCpp.md @@ -0,0 +1,43 @@ +#### Overview + +Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics. + +Representation of string and binary data in Arrow traditionally uses the Binary layout, where the entire string data resides in a separate buffer that is accessed using indirect indexing from a buffer of offsets. + +Recently, the Arrow project added the Binary View layout, a more efficient layout inspired from modern execution engines where the beginning of each string is packed directly within the offsets buffer. This allows short strings to be read and processed directly without going through an additional indirection. + +However, while basic support is present, Binary View is not universally supported by all Arrow components. + +We propose to finish implementing support for Binary View and String View types in all components of Arrow C++: + +* scalar compute kernels: + - `equal`, `less_equal`, etc. + - `is_in`, `index_in` + - `ascii_*`, `binary_*`, `utf8_*` + - `string_is_ascii` + - `count_substring` + - `extract_regex`, `extract_regex_span` + - `split_pattern`, `split_pattern_regex` + - `coalesce` + +* vector compute kernels: + - `take`, `filter`, `scatter` + - `run_end_encode`, `run_end_decode` + - `sort_indices`, `rank`, `rank_normal`, `rank_quantile` + - `partition_nth_indices` + - `select_k_unstable` + - `replace_with_mask` + - `fill_null_forward`, `fill_null_backward`, `drop_null` + +* aggregate compute kernels: + - `count_distinct` + - `first`, `last`, `min`, `max` + - `index` + +* CSV reader and writer + +* ORC reader and writer + +Funders can decide to fund the entire package, or choose the components they are interested in. + +##### Are you interested in this project? Either entirely or partially, contact us for more information on how to help us fund it diff --git a/src/components/fundable/index.tsx b/src/components/fundable/index.tsx index 274c8092..976fa64d 100644 --- a/src/components/fundable/index.tsx +++ b/src/components/fundable/index.tsx @@ -37,6 +37,12 @@ export function MainAreaFundableProjects() { projectCategory={fundableProjectsDetails.scientificComputing} /> +
+ +

Can't find a project?

If you have a project in mind that you think would be relevant to our expertise, please contact us to discuss it.

diff --git a/src/components/fundable/projectsDetails.ts b/src/components/fundable/projectsDetails.ts index 30f76885..cf5e289f 100644 --- a/src/components/fundable/projectsDetails.ts +++ b/src/components/fundable/projectsDetails.ts @@ -4,6 +4,7 @@ import JupyterGISToolsForPythonAPIMD from "@site/src/components/fundable/descrip import EmscriptenForgePackageRequestsMD from "@site/src/components/fundable/descriptions/EmscriptenForgePackageRequests.md" import SVE2SupportInXsimdMD from "@site/src/components/fundable/descriptions/SVE2SupportInXsimd.md" import MatrixOperationsInXtensor from "@site/src/components/fundable/descriptions/MatrixOperationsInXtensor.md" +import BinaryViewInArrowCpp from "@site/src/components/fundable/descriptions/BinaryViewInArrowCpp.md" export const fundableProjectsDetails = { jupyterEcosystem: [ @@ -84,6 +85,22 @@ export const fundableProjectsDetails = { currentFundingPercentage: 0, repoLink: "https://github.com/xtensor-stack/xtensor" } + ], + + apacheArrow: [ + { + category: "Apache Arrow and Parquet", + title: "Complete BinaryView / StringView support in Arrow C++", + pageName: "BinaryViewInApacheArrow", + shortDescription: "BinaryView is a more recent and more efficient alternative to Arrow's standard Binary type. It allows for inlined storage of short strings and fast prefix comparison.", + description: BinaryViewInArrowCpp, + price: "TBD", + maxNbOfFunders: 4, + currentNbOfFunders: 0, + currentFundingPercentage: 0, + repoLink: "https://github.com/apache/arrow" + } ] + } diff --git a/src/pages/fundable/BinaryViewInApacheArrow/GetAQuote.tsx b/src/pages/fundable/BinaryViewInApacheArrow/GetAQuote.tsx new file mode 100644 index 00000000..a945b598 --- /dev/null +++ b/src/pages/fundable/BinaryViewInApacheArrow/GetAQuote.tsx @@ -0,0 +1,9 @@ +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import GetAQuotePage from '@site/src/components/fundable/GetAQuotePage'; + +export default function FundablePage() { + const { siteConfig } = useDocusaurusContext(); + return ( + + ); +} \ No newline at end of file diff --git a/src/pages/fundable/BinaryViewInApacheArrow/index.tsx b/src/pages/fundable/BinaryViewInApacheArrow/index.tsx new file mode 100644 index 00000000..876857af --- /dev/null +++ b/src/pages/fundable/BinaryViewInApacheArrow/index.tsx @@ -0,0 +1,9 @@ +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import LargeProjectCardPage from '@site/src/components/fundable/LargeProjectCardPage'; + +export default function FundablePage() { + const { siteConfig } = useDocusaurusContext(); + return ( + + ); +}