Janklab-core is a general-purpose library of functions, classes, and extensions for Matlab. It is the main “utility” library in the Janklab library suite.
Janklab is informed by my background in quantitive analysis for finance, but should be useful in other application areas as well. It is designed for both interactive Matlab use and for building applications and production Matlab code.
Janklab-core is not a standalone application. It requires Matlab or the Matlab Runtime.
Janklab-core provides:
- Extended type system
- Additional date/time classes
- A Database Toolbox (“MDBC”) with increased performance and features
- Advanced Excel I/O suitable for server-side use
- Advanced FTP client
- More validators
- A bunch of miscellaneous utilities
See Feature Areas for details.
License
Apache 2.0, with other FOSS licenses for dependencies.
Janklab-core is licensed under the liberal, business-friendly Apache 2.0 License. You should be able to use it in most any application or environment, as long as you include the information from NOTICE.txt
in your source distribution and/or user interface.
Janklab-core depends on and is redistributed with third-party libraries, some of which are covered under other FOSS licenses.
- FastUtil - Apache License
- Apache Commons - Apache License
- SwingExplorer - LGPL
- Dispstr - BSD 2-Clause License
Contributing
Janklab is a personal project, not a community one. Bug reports and feature requests are welcome, but I will probably not accept major PRs. See CONTRIBUTING for details.
Installation and use
Installing as a Matlab Toolbox
You can install Janklab-core as a Matlab Toolbox by downloading the .mltbx
file from one of the Releases on GitHub and opening that file in Matlab to install it.
You can download the current release directly from: https://github.com/janklab/janklab-core/releases/download/v0.2.2/Janklab-0.2.2.mltbx
You must run init_janklab
inside your Matlab session to initialize the library before using it.
Installing from a release
You can also use Janklab-core without installing it as a Matlab Toolbox. Download the source code archive from one of the releases and extract it to somewhere on your computer’s hard drive.
In your Matlab session, run the init_janklab
function found under dist/Mcode/toplevel
in the repo.
% Example initialization script
oldDir = pwd;
cd /path/to/janklab/installation/janklab-core/Mcode/toplevel
init_janklab
cd(oldDir)
Running from the repo
If you want the current development version of Janklab-core, install it to your local system by cloning the Git repo.
git clone https://github.com/janklab/janklab-core
In your Matlab session, run the init_janklab
function found under dist/Mcode/toplevel
in the repo.
% Example initialization script
oldDir = pwd;
cd /path/to/janklab/installation/janklab-core/Mcode/toplevel
init_janklab
cd(oldDir)
Compatibility
Janklab-core requires Matlab R2019b or later, though parts of it may work on earlier versions of Matlab. Future Janklab releases will target newer versions of Matlab, and make use of their new features, so some features of Janklab may require later versions of Matlab.
Extended support of older Matlab versions is not a goal of Janklab. I haven’t decided how long older versions of Matlab will be supported, but it’s not going to be measured in years.
Octave compatibility
Parts of Janklab-core are compatible with GNU Octave; others are not. If you’re interested in seeing a particular part work under Octave, let me know.
Janklab makes extensive use of some features not supported by Octave. Parts using these won’t be made Octave-compatible unless Octave grows support for them. Features:
- Dot-style Java class references
table
datetime
- Handle object destructors
Author
Janklab-core is made by Andrew Janke.
The project home page is the Janklab-core repo on GitHub, and online doco is on the Janklab-core website.
Thanks to Polkadot Stingray for powering my coding.