Skip to content

propensive/soundness

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Latest version

Soundness Soundness

Soundness is an ecosystem of libraries for writing direct-style code with Scala 3, in a number of broad domains:

  • cli, for building commandline applications
  • data, for working with data in various forms
  • sci, for scientific and mathematical operations
  • test, for testing
  • tool, for building developer tools
  • web, for developing web applications

The Soundness website includes more details about developing software using Soundness, and should be the primary source of documentation about Soundness for users.

Using Soundness

Soundness is composed of over one hundred modules. Each module has its own unique name and purpose, and may be used alone (with its dependencies) or in combination with other modules in the ecosystem. Most modules have a core component, but many have additional components for optional functionality. Bundles of modules for the six domains above are also provided.

Binary dependencies

Releases are published on Maven Central, and can be specified as follows:

  • To include a bundle of modules, use dev.soundness:soundness-<bundle>:<version> where <bundle> is cli, data, sci, test, tool or web, for example, dev.soundness:soundness-sci:0.48.0.

  • To include one specific module, use dev.soundness:<module>-<component>:<version>, where <module> is one of the modules from the lib directory, and <component> is typically core, but may be something else for modules with optional components, for example dev.soundness:rudiments-core:0.48.0 or dev.soundness:punctuation-html:0.48.0.

  • To include everything in Soundness, use dev.soundness:soundness-all:<version>.

Version numbers are synchronized across all modules, and the latest release version is shown at the top of this page. Binary compatibility is not guaranteed between modules with different version numbers.

Releases

New versions of Soundness are usually released weekly.

Building Soundness

Soundness is currently built using Mill, with GNU Make providing some convenient shortcuts.

  • make test will compile everything and run the full test suite
  • make test.<module> will compile and run the tests for the module <module>
  • make dev will compile all source files continuously, watching for changes
  • make publishLocal will publish a version of Soundness locally

Requirements

Soundness requires Scala 3.7. Java 17 should be assumed as a minimum requirement for most modules, however Mandible (which uses the new classfile API) requires Java 24 or later.

About

A platform of libraries for Scala 3

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages