libdataset

command
v2.1.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 2, 2023 License: BSD-3-Clause Imports: 11 Imported by: 0

README

NAME

libdataset

SYNOPSIS

Use via C.

include "libdataset.h"

Use via Python.

from py_dataset import dataset

DESCRIPTION

libdataset is a C shared library based on the Go package called dataset from Caltech Library. The dataset package provides a unified way of working with JSON documents as collections. libdataset was create better integrate working with dataset collection from Python via the py_dataset Python package.

Requirements

To compile libdataset you need both a the Go 1.20 toolchain and a POSIX C toolchain including GNU Make. You need to understand your C compiler options to include the dataset shared libraries generated via the Go compiler.

Compiling libdataset

The following includes some general notes about compiling libdataset.

Linux/Darwin

To compile you need to have Go 1.20 and GNU Make. Running make in this directory will generate the compiled shared library and create header file (e.g. libdataset.so, libdataset.dll, or libdataset.dylib and libdataset.h). You can then copy the shared library and header file to an appropriate on your system.

Windows 11

Install Go 1.20 or better from the Golang website using the provided Windows binaries. Install Miniconda (from Anaconda). Using Miniconda install git, gcc (i.e. m2w64-gcc) and zip (m2-zip). Run "make.bat" to compile DLL. Modify and run release.bat to generate a release version.

Issues

  • Windows 11: Need to install gcc and git via Miniconda after installing the Go binaries for Windows from the golang.org website
  • Mac OS X (Darwin): only one Go c-shared library seems possible at in a python session, the Go code doesn't seem to be movable in memory, this is related to a long standing issue in Mac OS X only supporting xcode's linker

LICENSE

This software is licensed under a varation of the BSD license. See LICENSE in the source repository LICENSE for details.

Documentation

Overview

Copyright (c) 2023, Caltech All rights not granted herein are expressly reserved by Caltech.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL