core

module
v0.3.10 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2025 License: BSD-3-Clause

README

Cogent Core Logo
Cogent Core Name Banner

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

Cogent Core is a free and open source framework for building powerful, fast, elegant 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and web with a single Go codebase, allowing you to Code Once, Run Everywhere (Core). See the Cogent Core Website for more information, including extensive documentation and interactive examples you can directly edit and run. The website itself is a Cogent Core app running on the web using wasm. You must complete the install instructions on the website before developing with Cogent Core on your system.

Sponsors

We thank October Swimmer and our other sponsors for their support, which allows us to spend more time improving Cogent Core.

Directories

Path Synopsis
Package base contains a collection of base infrastructure packages that serve as a base for the main Cogent Core packages.
Package base contains a collection of base infrastructure packages that serve as a base for the main Cogent Core packages.
auth
Package auth provides a system for identifying and authenticating users through third party cloud systems in Cogent Core apps.
Package auth provides a system for identifying and authenticating users through third party cloud systems in Cogent Core apps.
bools
Package bools provides functions and interfaces for interacting with bool values.
Package bools provides functions and interfaces for interacting with bool values.
datasize
Package datasize provides a data size type and constants.
Package datasize provides a data size type and constants.
elide
Package elide provides basic text eliding functions.
Package elide provides basic text eliding functions.
errors
Package errors provides a set of error handling helpers, extending the standard library errors package.
Package errors provides a set of error handling helpers, extending the standard library errors package.
exec
Package exec provides an easy way to execute commands, improving the ease-of-use and error handling of the standard library os/exec package.
Package exec provides an easy way to execute commands, improving the ease-of-use and error handling of the standard library os/exec package.
fileinfo
Package fileinfo manages file information and categorizes file types; it is the single, consolidated place where file info, mimetypes, and filetypes are managed in Cogent Core.
Package fileinfo manages file information and categorizes file types; it is the single, consolidated place where file info, mimetypes, and filetypes are managed in Cogent Core.
fileinfo/mimedata
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.
fsx
Package fsx provides various utility functions for dealing with filesystems.
Package fsx provides various utility functions for dealing with filesystems.
generate
Package generate provides utilities for building code generators in Go.
Package generate provides utilities for building code generators in Go.
indent
Package indent provides indentation generation methods.
Package indent provides indentation generation methods.
iox
Package iox provides boilerplate wrapper functions for the Go standard io functions to Read, Open, Write, and Save, with implementations for commonly used encoding formats.
Package iox provides boilerplate wrapper functions for the Go standard io functions to Read, Open, Write, and Save, with implementations for commonly used encoding formats.
keylist
Package keylist implements an ordered list (slice) of items, with a map from a key (e.g., names) to indexes, to support fast lookup by name.
Package keylist implements an ordered list (slice) of items, with a map from a key (e.g., names) to indexes, to support fast lookup by name.
logx
Package logx implements structured log handling and provides global log and print verbosity and color options.
Package logx implements structured log handling and provides global log and print verbosity and color options.
mergefs
Package mergefs provides support for merging multiple filesystems together.
Package mergefs provides support for merging multiple filesystems together.
metadata
Package metadata provides a map of named any elements with generic support for type-safe Get and nil-safe Set.
Package metadata provides a map of named any elements with generic support for type-safe Get and nil-safe Set.
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.
ordmap
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.
plan
Package plan provides an efficient mechanism for updating a slice to contain a target list of elements, generating minimal edits to modify the current slice contents to match the target.
Package plan provides an efficient mechanism for updating a slice to contain a target list of elements, generating minimal edits to modify the current slice contents to match the target.
profile
Package profile provides basic but effective profiling of targeted functions or code sections, which can often be more informative than generic cpu profiling.
Package profile provides basic but effective profiling of targeted functions or code sections, which can often be more informative than generic cpu profiling.
reflectx
Package reflectx provides a collection of helpers for the reflect package in the Go standard library.
Package reflectx provides a collection of helpers for the reflect package in the Go standard library.
runes
Package runes provides a small subset of functions for rune slices that are found in the strings and bytes standard packages.
Package runes provides a small subset of functions for rune slices that are found in the strings and bytes standard packages.
slicesx
Package slicesx provides additional slice functions beyond those in the standard slices package.
Package slicesx provides additional slice functions beyond those in the standard slices package.
stack
Package stack provides a generic stack implementation.
Package stack provides a generic stack implementation.
strcase
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).
stringsx
Package stringsx provides additional string functions beyond those in the standard strings package.
Package stringsx provides additional string functions beyond those in the standard strings package.
tiered
Package tiered provides a type for a tiered set of objects.
Package tiered provides a type for a tiered set of objects.
timer
Package timer provides a simple wall-clock duration timer based on standard time.
Package timer provides a simple wall-clock duration timer based on standard time.
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).
vcs
Package vcs provides a more complete version control system (ex: git) interface, building on https://github.com/Masterminds/vcs.
Package vcs provides a more complete version control system (ex: git) interface, building on https://github.com/Masterminds/vcs.
cli
Package cli generates powerful CLIs from Go struct types and functions.
Package cli generates powerful CLIs from Go struct types and functions.
clicore
Package clicore extends package cli by generating Cogent Core GUIs.
Package clicore extends package cli by generating Cogent Core GUIs.
cmd
core
Command core provides command line tools for developing apps and libraries using the Cogent Core framework.
Command core provides command line tools for developing apps and libraries using the Cogent Core framework.
core/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.
core/config
Package config contains the configuration structs for the Cogent Core tool.
Package config contains the configuration structs for the Cogent Core tool.
core/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.
core/mobile
Package mobile provides functions for building Cogent Core apps for mobile devices.
Package mobile provides functions for building Cogent Core apps for mobile devices.
core/mobile/binres
Package binres implements encoding and decoding of android binary resources.
Package binres implements encoding and decoding of android binary resources.
core/mobile/sdkpath
Package sdkpath provides functions for locating the Android SDK.
Package sdkpath provides functions for locating the Android SDK.
core/web
Package web provides functions for building Cogent Core apps for the web.
Package web provides functions for building Cogent Core apps for the web.
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.
Package content provides a system for making content-focused apps and websites consisting of Markdown, HTML, and Cogent Core.
Package content provides a system for making content-focused apps and websites consisting of Markdown, HTML, and Cogent Core.
bcontent
Package bcontent ("base content") provides base types and functions shared by both content and the core build tool for content.
Package bcontent ("base content") provides base types and functions shared by both content and the core build tool for content.
Package core provides the core GUI functionality of Cogent Core.
Package core provides the core GUI functionality of Cogent Core.
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.
Command docs provides documentation of Cogent Core, hosted at https://cogentcore.org/core.
Command docs provides documentation of Cogent Core, hosted at https://cogentcore.org/core.
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.
xyz
gpu
Package gpu implements a convenient interface to the WebGPU graphics and compute framework, in Go, using the ...
Package gpu implements a convenient interface to the WebGPU graphics and compute framework, in Go, using the ...
cmd/webgpuinfo
This tool prints out information about your available WebGPU devices.
This tool prints out information about your available WebGPU devices.
shape
Package shape provides a library of 3D shapes, built from indexed triangle meshes, which can be added together in `ShapeGroup` lists.
Package shape provides a library of 3D shapes, built from indexed triangle meshes, which can be added together in `ShapeGroup` lists.
Package htmlcore converts HTML and MD into Cogent Core widget trees.
Package htmlcore converts HTML and MD into Cogent Core widget trees.
Package icons provides Material Design Symbols as SVG icon variables.
Package icons provides Material Design Symbols as SVG icon variables.
Package keymap implements maps from keyboard shortcuts to semantic GUI keyboard functions.
Package keymap implements maps from keyboard shortcuts to semantic GUI keyboard functions.
math32 is our version of the G3N math32 32-bit, 3D rendering-based math library.
math32 is our version of the G3N math32 32-bit, 3D rendering-based math library.
minmax
Package minmax provides a struct that holds Min and Max values.
Package minmax provides a struct that holds Min and Max values.
vecint
Package vecint has vector types for emergent, including Vector2i which is a 2D vector with int values, using the API based on math32.Vector2i.
Package vecint has vector types for emergent, including Vector2i which is a 2D vector with int values, using the API based on math32.Vector2i.
Package paint is the rendering package for Cogent Core.
Package paint is the rendering package for Cogent Core.
scan
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 parse is the top-level package for the Cogent Core parsing system.
Package parse is the top-level package for the Cogent Core parsing system.
cmd/update
Command update updates all of the .parse files within or beneath the current directory by opening and saving them.
Command update updates all of the .parse files within or beneath the current directory by opening and saving them.
lexer
Package lexer provides all the lexing functions that transform text into lexical tokens, using token types defined in the token package.
Package lexer provides all the lexing functions that transform text into lexical tokens, using token types defined in the 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 parse.
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 parse.
parser
Package parse does the parsing stage after lexing
Package parse does the parsing stage after lexing
supportedlanguages
Package supportedlanguages includes all the supported languages for parse -- need to import this package to get those all included in a given target
Package supportedlanguages includes all the supported languages for parse -- 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 spell provides functions for spell check and correction.
Package spell provides functions for spell check and correction.
Package styles contains the style structures for the Cogent Core GUI framework.
Package styles contains the style structures for the Cogent Core GUI framework.
units
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)
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
Package system provides a Go operating system interface framework to support events, window management, and other OS-specific functionality needed for full GUI support.
Package system provides a Go operating system interface framework to support events, window management, and other OS-specific functionality needed for full GUI support.
driver/base
Package base provides base driver types that platform-specific drivers can extend to implement interfaces defined in package system.
Package base provides base driver types that platform-specific drivers can extend to implement interfaces defined in package system.
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 system interfaces to allow for offscreen testing and capturing of apps.
Package offscreen provides placeholder implementations of system interfaces to allow for offscreen testing and capturing of apps.
driver/web
Package web implements system interfaces on the web through WASM
Package web implements system interfaces on the web through WASM
driver/web/jsfs
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.
difflib
Package difflib is a partial port of Python difflib module.
Package difflib is a partial port of Python difflib module.
difflib/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.
highlighting
Package highlighting provides syntax highlighting styles; it is based on github.com/alecthomas/chroma, which in turn was based on the python pygments package.
Package highlighting provides syntax highlighting styles; it is based on github.com/alecthomas/chroma, which in turn was based on the python pygments package.
Package tree provides a powerful and extensible tree system, centered on the core Node interface.
Package tree provides a powerful and extensible tree system, centered on the core Node interface.
Package types provides type information for Go types, methods, and functions.
Package types provides type information for Go types, methods, and functions.
cmd/typegen
Command typgen provides the generation of type information for Go types, methods, and functions.
Command typgen provides the generation of type information for Go types, methods, and functions.
typegen
Package typgen provides the generation of type information for Go types, methods, and functions.
Package typgen provides the generation of type information for Go types, methods, and functions.
Package undo package provides a generic undo / redo functionality based on `[]string` representations of any kind of state representation (typically JSON dump of the 'document' state).
Package undo package provides a generic undo / redo functionality based on `[]string` representations of any kind of state representation (typically JSON dump of the 'document' state).
Package video implements a video player widget in Cogent Core.
Package video implements a video player widget in Cogent Core.
xyz
Package xyz is a 3D graphics framework written in Go.
Package xyz is a 3D graphics framework written in Go.
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).
xyzcore
Package xyzcore provides a GUI view for a 3D xyz scene.
Package xyzcore provides a GUI view for a 3D xyz scene.
Package yaegicore provides functions connecting https://github.com/cogentcore/yaegi to Cogent Core.
Package yaegicore provides functions connecting https://github.com/cogentcore/yaegi to Cogent Core.
basesymbols
Package basesymbols contains yaegi symbols for base (non-GUI) packages.
Package basesymbols contains yaegi symbols for base (non-GUI) packages.
coresymbols
Package coresymbols contains yaegi symbols for core packages.
Package coresymbols contains yaegi symbols for core packages.

Jump to

Keyboard shortcuts

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