core

module
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2024 License: BSD-3-Clause

README

Cogent Core Logo

Cogent Core

Go Report Card pkg.go.dev docs GitHub Actions Workflow Status Test Coverage Version

A free and open source framework for building powerful, fast, and cogent 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and the Web with a single pure Go codebase, allowing you to Code Once, Run Everywhere. See the Cogent Core Website for more information, including extensive documentation and interactive running examples. The website itself is a Cogent Core app running on the web using WASM (see docs).

NOTE: Cogent Core is currently undergoing a period of significant development to make it easier to make powerful, fast, and cogent apps. As such, some of the information in this repository and on the Cogent Core website may be incorrect. Furthermore, there are ongoing breaking changes, so starting new apps with this framework is not recommended at this time; if you do, please be ready to adjust to any breaking changes. We are planning to make a v1 stable release at the end of March (see the v1 milestone).

Directories

Path Synopsis
cam
cie
hct
hpe
hsl
lms
Package colors provides named colors, utilities for manipulating colors, and Material Design 3 color schemes, palettes, and keys in Go.
Package colors provides named colors, utilities for manipulating colors, and Material Design 3 color schemes, palettes, and keys in Go.
gradient
Package gradient provides linear, radial, and conic color gradients.
Package gradient provides linear, radial, and conic color gradients.
matcolor
Package matcolor provides support for creating Material Design 3 color schemes and palettes.
Package matcolor provides support for creating Material Design 3 color schemes and palettes.
cmd
Package cmd provides utilities for managing apps and packages that use the Cogent Core framework.
Package cmd provides utilities for managing apps and packages that use the Cogent Core framework.
config
Package config contains the configuration structs for the Cogent Core tool.
Package config contains the configuration structs for the Cogent Core tool.
generate
Package generate provides the generation of useful methods, variables, and constants for Cogent Core code.
Package generate provides the generation of useful methods, variables, and constants for Cogent Core code.
mobile
Gomobile is a tool for building and running mobile apps written in Go.
Gomobile is a tool for building and running mobile apps written in Go.
mobile/binres
Package binres implements encoding and decoding of android binary resources.
Package binres implements encoding and decoding of android binary resources.
mobile/sdkpath
Package sdkpath provides functions for locating the Android SDK.
Package sdkpath provides functions for locating the Android SDK.
web
Package coredom converts HTML and MD into Cogent Core DOM widget trees.
Package coredom converts HTML and MD into Cogent Core DOM widget trees.
Package cursors provides Go constant names for cursors as SVG files.
Package cursors provides Go constant names for cursors as SVG files.
cursorimg
Package cursorimg provides the cached rendering of SVG cursors to images.
Package cursorimg provides the cached rendering of SVG cursors to images.
Package difflib is a partial port of Python difflib module.
Package difflib is a partial port of Python difflib module.
bytes
Package bytes is a partial port of Python difflib module for bytes.
Package bytes is a partial port of Python difflib module for bytes.
Package enums provides common interfaces for enums and bit flag enums and utilities for using them
Package enums provides common interfaces for enums and bit flag enums and utilities for using them
cmd/enumgen
Package main provides the actual command line implementation of the enumgen library.
Package main provides the actual command line implementation of the enumgen library.
enumgen
Package enumgen provides functions for generating enum methods for enum types.
Package enumgen provides functions for generating enum methods for enum types.
key
Package key defines an event for physical keyboard keys, for the Cogent Core GUI system.
Package key defines an event for physical keyboard keys, for the Cogent Core GUI system.
examples
async
Command async demonstrates async updating in Cogent Core.
Command async demonstrates async updating in Cogent Core.
svg
xyz
Package filecat categorizes file types -- it is the single, consolidated place where mimetypes and filetypes etc are managed in Cogent Core.
Package filecat categorizes file types -- it is the single, consolidated place where mimetypes and filetypes etc are managed in Cogent Core.
Package gengo provides utilities for building code generators in Go
Package gengo provides utilities for building code generators in Go
Package Gi (Cogent Core) provides a Graphical Interface based on Cogent Core Tree Node structs
Package Gi (Cogent Core) provides a Graphical Interface based on Cogent Core Tree Node structs
Package GiV (Cogent Core Views) provides a model / view framework to view Go data using reflection
Package GiV (Cogent Core Views) provides a model / view framework to view Go data using reflection
glop
atomctr
Package atomctr implements basic atomic int64 counter
Package atomctr implements basic atomic int64 counter
datasize
Package datasize provides a data size type and constants.
Package datasize provides a data size type and constants.
dedupe
Package dedupe implements a de-duplication function for any comparable slice type, efficiently using a map to check for duplicates.
Package dedupe implements a de-duplication function for any comparable slice type, efficiently using a map to check for duplicates.
dirs
Package dirs provides various utility functions in dealing with directories such as a list of all the files with a given (set of) extensions and finding paths within the Go source directory (GOPATH, etc)
Package dirs provides various utility functions in dealing with directories such as a list of all the files with a given (set of) extensions and finding paths within the Go source directory (GOPATH, etc)
elide
Package elide provides basic text eliding functions.
Package elide provides basic text eliding functions.
fatomic
Package fatomic provides floating-point atomic operations
Package fatomic provides floating-point atomic operations
indent
Package indent provides trivial indentation generation methods: Tabs, Spaces, and Indent with a selector.
Package indent provides trivial indentation generation methods: Tabs, Spaces, and Indent with a selector.
nptime
Package nptime provides a non-pointer version of the time.Time struct that does not have the location pointer information that time.Time has, which is more efficient from a memory management perspective, in cases where you have a lot of time values being kept: https://segment.com/blog/allocation-efficiency-in-high-performance-go-services/
Package nptime provides a non-pointer version of the time.Time struct that does not have the location pointer information that time.Time has, which is more efficient from a memory management perspective, in cases where you have a lot of time values being kept: https://segment.com/blog/allocation-efficiency-in-high-performance-go-services/
num
option
Package option provides optional (nullable) types.
Package option provides optional (nullable) types.
runes
Package runes provides a small subset of functions that are found in strings, bytes standard packages, for rune slices.
Package runes provides a small subset of functions that are found in strings, bytes standard packages, for rune slices.
tolassert
Package tolassert provides functions for asserting the equality of numbers with tolerance (in other words, it checks whether numbers are about equal).
Package tolassert provides functions for asserting the equality of numbers with tolerance (in other words, it checks whether numbers are about equal).
Package goosi provides interfaces for OS-specific GUI hardware for portable two-dimensional graphics and input events.
Package goosi provides interfaces for OS-specific GUI hardware for portable two-dimensional graphics and input events.
driver/base
Package base provides base driver types that platform-specific drivers can extend to implement interfaces defined in package goosi.
Package base provides base driver types that platform-specific drivers can extend to implement interfaces defined in package goosi.
driver/mobile/mobileinit
Package mobileinit contains common initialization logic for mobile platforms that is relevant to both all-Go apps and gobind-based apps.
Package mobileinit contains common initialization logic for mobile platforms that is relevant to both all-Go apps and gobind-based apps.
driver/offscreen
Package offscreen provides placeholder implementations of goosi interfaces to allow for offscreen testing and capturing of apps.
Package offscreen provides placeholder implementations of goosi interfaces to allow for offscreen testing and capturing of apps.
Package grog implements structured log handling and provides global log and print verbosity and color options.
Package grog implements structured log handling and provides global log and print verbosity and color options.
Package grr provides a set of error handling helpers for Go.
Package grr provides a set of error handling helpers for Go.
gti
gtigen
Package gtigen provides the generation of general purpose type information for Go types, methods, functions and variables
Package gtigen provides the generation of general purpose type information for Go types, methods, functions and variables
Package icons provides Go constant names for Material Design Symbols as SVG files.
Package icons provides Go constant names for Material Design Symbols as SVG files.
Package jsfs provides a Node.js style filesystem API in Go that can be used to allow os functions to work on wasm.
Package jsfs provides a Node.js style filesystem API in Go that can be used to allow os functions to work on wasm.
Package ki provides the base element of Cogent Core Trees: Ki = Tree in Japanese, and "Key" in English -- powerful tree structures supporting scenegraphs, programs, parsing, etc.
Package ki provides the base element of Cogent Core Trees: Ki = Tree in Japanese, and "Key" in English -- powerful tree structures supporting scenegraphs, programs, parsing, etc.
mat32 is our version of the G3N math32 32-bit, 3D rendering-based math library.
mat32 is our version of the G3N math32 32-bit, 3D rendering-based math library.
Package mergefs provides support for merging multiple filesystems together.
Package mergefs provides support for merging multiple filesystems together.
Package mimedata defines MIME data support used in clipboard and drag-and-drop functions in the Cogent Core GUI.
Package mimedata defines MIME data support used in clipboard and drag-and-drop functions in the Cogent Core GUI.
package ordmap implements an ordered map that retains the order of items added to a slice, while also providing fast key-based map lookup of items, using the Go 1.18 generics system.
package ordmap implements an ordered map that retains the order of items added to a slice, while also providing fast key-based map lookup of items, using the Go 1.18 generics system.
Package Paint is the paint package for the Cogent Core render library.
Package Paint is the paint package for the Cogent Core render library.
pi
Package pi provides the top-level repository for the GoPi interactive parser system.
Package pi provides the top-level repository for the GoPi interactive parser system.
lex
Package lex provides all the lexing functions that transform text into lexical tokens, using token types defined in the pi/token package.
Package lex provides all the lexing functions that transform text into lexical tokens, using token types defined in the pi/token package.
lsp
Package lsp contains types for the Language Server Protocol LSP: https://microsoft.github.io/language-server-protocol/specification and mappings from these elements into the token.Tokens types which are used internally in GoPi.
Package lsp contains types for the Language Server Protocol LSP: https://microsoft.github.io/language-server-protocol/specification and mappings from these elements into the token.Tokens types which are used internally in GoPi.
parse
Package parse does the parsing stage after lexing
Package parse does the parsing stage after lexing
suplangs
Package suplangs includes all the supported languages for GoPi -- need to import this package to get those all included in a given target
Package suplangs includes all the supported languages for GoPi -- need to import this package to get those all included in a given target
syms
Package syms defines the symbols and their properties that are accumulated from a parsed file, and are then used for e.g., completion lookup, etc.
Package syms defines the symbols and their properties that are accumulated from a parsed file, and are then used for e.g., completion lookup, etc.
token
Package token defines a complete set of all lexical tokens for any kind of language! It is based on the alecthomas/chroma / pygments lexical tokens plus all the more detailed tokens needed for actually parsing languages
Package token defines a complete set of all lexical tokens for any kind of language! It is based on the alecthomas/chroma / pygments lexical tokens plus all the more detailed tokens needed for actually parsing languages
package prof provides very basic but effective profiling of targeted functions or code sections, which can often be more informative than generic cpu profiling
package prof provides very basic but effective profiling of targeted functions or code sections, which can often be more informative than generic cpu profiling
Package scan provides an anti-aliasing 2-D rasterizer, which is based on the larger Freetype suite of font-related packages, but the raster package is not specific to font rasterization, and can be used standalone without any other Freetype package.
Package scan provides an anti-aliasing 2-D rasterizer, which is based on the larger Freetype suite of font-related packages, but the raster package is not specific to font rasterization, and can be used standalone without any other Freetype package.
Package spell provides functions for spell check and correction.
Package spell provides functions for spell check and correction.
Package strcase provides functions for manipulating the case of strings (CamelCase, kebab-case, snake_case, Sentence case, etc).
Package strcase provides functions for manipulating the case of strings (CamelCase, kebab-case, snake_case, Sentence case, etc).
Package GiSt contains the style structures for the Cogent Core GUI framework.
Package GiSt contains the style structures for the Cogent Core GUI framework.
svg
Package svg provides SVG rendering classes, I/O parsing: full SVG rendering
Package svg provides SVG rendering classes, I/O parsing: full SVG rendering
histyle
Package histyle provides syntax highlighting styles; it is based on github.com/alecthomas/chroma, which in turn was based on the python pygments package.
Package histyle provides syntax highlighting styles; it is based on github.com/alecthomas/chroma, which in turn was based on the python pygments package.
Package undo supports generic undo / redo functionality, using an efficient diff of string-valued state representation of a 'document' being edited which can be JSON or XML or actual text -- whatever.
Package undo supports generic undo / redo functionality, using an efficient diff of string-valued state representation of a 'document' being edited which can be JSON or XML or actual text -- whatever.
Package Units supports full range of CSS-style length units (em, px, dp, etc)
Package Units supports full range of CSS-style length units (em, px, dp, etc)
Package vci provides a version control interface for version control systems such as git, svn, etc.
Package vci provides a version control interface for version control systems such as git, svn, etc.
Package vgpu implements a convenient interface to the Vulkan GPU-based graphics and compute framework, in Go, using the https://github.com/goki/vulkan Go bindings.
Package vgpu implements a convenient interface to the Vulkan GPU-based graphics and compute framework, in Go, using the https://github.com/goki/vulkan Go bindings.
vkinit
package vkinit handles loading and initialization of Vulkan without any dependency upon glfw
package vkinit handles loading and initialization of Vulkan without any dependency upon glfw
vshape
vshape provides a library of 3D shapes, built from indexed triangle meshes, which can be added together in `ShapeGroup` lists.
vshape provides a library of 3D shapes, built from indexed triangle meshes, which can be added together in `ShapeGroup` lists.
Package video implements a video player widget in Cogent Core.
Package video implements a video player widget in Cogent Core.
Package webcore is a framework designed for easily building content-focused sites
Package webcore is a framework designed for easily building content-focused sites
wpath
Package wpath handles webcore paths
Package wpath handles webcore paths
xyz
Package xyz provides a 3D scenegraph for the Cogent Core GUI framework.
Package xyz provides a 3D scenegraph for the Cogent Core GUI framework.
io/obj
Package obj is used to parse the Wavefront OBJ file format (*.obj), including associated materials (*.mtl).
Package obj is used to parse the Wavefront OBJ file format (*.obj), including associated materials (*.mtl).

Jump to

Keyboard shortcuts

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