foundation

module
v0.0.388 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2024 License: Apache-2.0

README

Namespace is a development-optimized compute platform. It improves the performance and observability of Docker builds, GitHub Actions, and more, without requiring workflow changes. Learn more at https://namespace.so.

Namespace is a purpose-built ephemeral compute platform that is optimized for developer use-cases: high performance workloads, with high I/O requirements, where caches and incrementally are first class. Many teams use the infrastructure programmatically (via our CLI and APIs) to build custom Previews, Developer Environments, and more. Learn more about our APIs.

This repository includes Foundation, the underlying technology on which Namespace's services are built. It's a composable system that drives, build, test and deployment, from a single set of service and extension definitions in CUE. It's inspired by Boq, Google's application platform, which our team also helped build.

🎬 Getting Started  •  🗼 Documentation  •  💬 Discord

About Foundation

Namespace's foundation is an application development platform that helps you manage your development, testing, and production workflows, in a consistent and unified way.

You describe the servers in your application, how they're built, their relationship, and which additional resources they need. And from that description -- built out of a set of composable and extensible blocks -- Namespace orchestrates:

  • Build: start with your Dockerfiles, or use one of our language-specific integrations, so you don't have to manage Dockerfiles manually. Apart from their ease of use, language-specific integrations set up your build and development environment with the latest best practices and make harder things simple (e.g., support multiple platforms).

  • Development environment: With Namespace, you don't need to manage your development dependencies manually -- the days of asking folks in the team to install the right SDK versions will be gone. Instead, we'll manage SDKs and dependencies on your behalf. As a result, getting someone new onboarded into the application development environment will take minutes rather than hours or days.

  • Representative environments: How often have you hit bugs in production or testing that are hard to reproduce locally? Namespace helps you bridge the gap between environments, managing production-like environments across development and testing.

  • Effortless end-to-end testing: When you have an application setup with Namespace, writing an end-to-end system test becomes simple. From the same application definition used to set up a development environment, Namespace is also capable of creating ephemeral testing environments used to run end-to-end tests.

  • Kubernetes: (but you don't need to care). We help you and your team to think about concepts you care about: services, resources, backends, etc. Under the covers, you'll find industry-standard Kubernetes and CNCF projects, which means that as you grow or need, you can easily tap into the broad Kubernetes ecosystem. No hidden implementation, and no vendor lock-in.

  • Packaged dependencies: adding support infrastructure or a resource -- whether it's a storage bucket, a database, a messaging system, etc. -- it's as simple as adding a dependency to your application.

Getting Started

To get started follow our getting started guide. After installing ns, explore some of the examples our team put together.

Issues

The Namespace Labs team uses Linear for issue management. Unfortunately, we haven’t yet found a way to make it available to everyone. Meanwhile, please file issues in Github, and we’ll follow up on them.

Directories

Path Synopsis
cmd
ns
nsc
framework
rpcerrors/multierr
Package multierr provides a simple multiple-error type.
Package multierr provides a simple multiple-error type.
internal
cli/cmd/lsp
Runs a Language Server Protocol (LSP) server ready to comminicate with any editor/IDE.
Runs a Language Server Protocol (LSP) server ready to comminicate with any editor/IDE.
fnerrors/format
Pretty-printing of various namespace errors.
Pretty-printing of various namespace errors.
frontend/cuefrontend
This is about parsing Fn-specific dialect of Cue.
This is about parsing Fn-specific dialect of Cue.
frontend/fncue
Implements loading of Namespace-specific dialect of Cue which includes: * a Golang-like module system where modules are loaded from source transparently when needed; * support for @fn() attributes allowing to access runtime data from the environment.
Implements loading of Namespace-specific dialect of Cue which includes: * a Golang-like module system where modules are loaded from source transparently when needed; * support for @fn() attributes allowing to access runtime data from the environment.
git
planning/deploy/storage
nolint directives: stylecheck:sa1019
nolint directives: stylecheck:sa1019
ssh
library
server
This file was automatically generated by Namespace.
This file was automatically generated by Namespace.
public
schemahelper
This package is separate so we can use generics, schema is stricly go 1.17.
This package is separate so we can use generics, schema is stricly go 1.17.
std
cfg
tools
universe
gcp

Jump to

Keyboard shortcuts

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