---
title: 'Bazel BUILD Encyclopedia of Functions'
---

## Concepts and terminology

* [Common definitions](/versions/8.7.0/reference/be/common-definitions)
  + [Bourne shell tokenization](/versions/8.7.0/reference/be/common-definitions#sh-tokenization)
  + [Label expansion](/versions/8.7.0/reference/be/common-definitions#label-expansion)
  + [Typical attributes for most rules](/versions/8.7.0/reference/be/common-definitions#typical-attributes)
  + [Common attributes for all rules](/versions/8.7.0/reference/be/common-definitions#common-attributes)
  + [Common attributes for tests](/versions/8.7.0/reference/be/common-definitions#common-attributes-tests)
  + [Common attributes for binaries](/versions/8.7.0/reference/be/common-definitions#common-attributes-binaries)
  + [Configurable attributes](/versions/8.7.0/reference/be/common-definitions#configurable-attributes)
  + [Implicit output targets](/versions/8.7.0/reference/be/common-definitions#implicit-outputs)
* ["Make" variables](/versions/8.7.0/reference/be/make-variables)
  + [Use](/versions/8.7.0/reference/be/make-variables#use)

## Functions

* [package](/versions/8.7.0/reference/be/functions#package)
* [package_group](/versions/8.7.0/reference/be/functions#package_group)
* [exports_files](/versions/8.7.0/reference/be/functions#exports_files)
* [glob](/versions/8.7.0/reference/be/functions#glob)
* [select](/versions/8.7.0/reference/be/functions#select)
* [workspace](/versions/8.7.0/rules/lib/globals/workspace#workspace)

## Rules

Native rules ship with the Bazel binary and do not require a `load` statement.
Native rules are available globally in BUILD files. In .bzl files, you can find them in
the `native` module.
For non-native Starlark rules that ship separately from Bazel, see the list of
[recommended rules](/versions/8.7.0/rules/rules#recommended-rules).

### Language-specific native rules

| Language | Binary rules | Library rules | Test rules | Other rules |
| --- | --- | --- | --- | --- |
| C / C++ | [cc_binary](c-cpp#cc_binary) | [cc_import](c-cpp#cc_import)   [cc_library](c-cpp#cc_library)   [cc_shared_library](c-cpp#cc_shared_library)   [cc_static_library](c-cpp#cc_static_library) | [cc_test](c-cpp#cc_test) | [cc_toolchain](c-cpp#cc_toolchain)   [cc_toolchain_suite](c-cpp#cc_toolchain_suite)   [fdo_prefetch_hints](c-cpp#fdo_prefetch_hints)   [fdo_profile](c-cpp#fdo_profile)   [memprof_profile](c-cpp#memprof_profile)   [propeller_optimize](c-cpp#propeller_optimize) |
| Java | [java_binary](java#java_binary) | [java_import](java#java_import)   [java_library](java#java_library) | [java_test](java#java_test) | [java_package_configuration](java#java_package_configuration)   [java_plugin](java#java_plugin)   [java_runtime](java#java_runtime)   [java_toolchain](java#java_toolchain) |
| Objective-C |  | [objc_import](objective-c#objc_import)   [objc_library](objective-c#objc_library) |  |  |
| Protocol Buffer |  | [cc_proto_library](protocol-buffer#cc_proto_library)   [java_lite_proto_library](protocol-buffer#java_lite_proto_library)   [java_proto_library](protocol-buffer#java_proto_library)   [proto_library](protocol-buffer#proto_library)   [py_proto_library](protocol-buffer#py_proto_library) |  | [proto_lang_toolchain](protocol-buffer#proto_lang_toolchain)   [proto_toolchain](protocol-buffer#proto_toolchain) |
| Python | [py_binary](python#py_binary) | [py_library](python#py_library) | [py_test](python#py_test) | [py_runtime](python#py_runtime) |
| Shell | [sh_binary](shell#sh_binary) | [sh_library](shell#sh_library) | [sh_test](shell#sh_test) |  |

### Language-agnostic native rules

| Family | Rules |
| --- | --- |
| Extra Actions | * [action_listener](extra-actions#action_listener)* [extra_action](extra-actions#extra_action) |
| General | * [alias](general#alias)* [config_setting](general#config_setting)* [filegroup](general#filegroup)* [genquery](general#genquery)* [genrule](general#genrule)* [starlark_doc_extract](general#starlark_doc_extract)* [test_suite](general#test_suite) |
| Platforms and Toolchains | * [constraint_setting](platforms-and-toolchains#constraint_setting)* [constraint_value](platforms-and-toolchains#constraint_value)* [platform](platforms-and-toolchains#platform)* [toolchain](platforms-and-toolchains#toolchain)* [toolchain_type](platforms-and-toolchains#toolchain_type) |
| Workspace | * [bind](workspace#bind)* [local_repository](workspace#local_repository)* [new_local_repository](workspace#new_local_repository) |